Quay lại
Những câu hỏi phỏng vấn về php

1.Những câu hỏi phỏng vấn cho Freshers

2.Những câu hỏi phỏng vấn cho Junior

Hi ! xin chào mọi người, với chủ đề lần này mình sẽ viết về chủ đề các câu hỏi phỏng vấn trong lập trình php , bài này mình sẽ giới thiệu về các câu hỏi từ vị trí Freshers cho tới những bạn có kinh nghiệm, đầu tiên sẽ là những câu hỏi từ đơn giản đến nâng cao , các bạn cùng tham khảo nhé ! 

Để học về 1 cái gì đó thì trước tiên các bạn phải tự hỏi nó là cái gì và ứng dụng của nó như thế nào đúng không ? Cùng mình tìm hiểu php là gì trước đã nhé !

Php viết tắt của Hypertext Preprocessor là ngôn ngữ kịch bản mã nguồn mở phía máy chủ được sử dụng rộng rãi, đặc biệt phù hợp để tạo các trang web động và APIs.

PHP hỗ trợ nhiều cơ sở dữ liệu như MySQL, Solid, PostgreSQL, Oracle, Sybase, ODBC chung, v.v. Mã PHP được nhúng trong HTML.

Nó được sử dụng để quản lý nội dung động, session, cơ sở dữ liệu và cũng để xây dựng toàn bộ trang web thương mại điện tử.

Theo mặc định, hầu hết các máy chủ lưu trữ web đều hỗ trợ PHP và do đó, nó góp phần tiết kiệm chi phí.

Những câu hỏi phỏng vấn cho Freshers

1. Sự khác biệt giữa variables (biến số) và Constans trong php

Một vài sự khác biệt trong biến số và Constans được đưa ra như bên dưới đây :

Variables (Biến số)

Hằng số (Constants)

Giá trị của một biến số có thể thay đổi trong suốt quá trình thực thi

Constant không thế thay đổi trong quá trình thực thi

 Các biến yêu cầu sử dụng bắt buộc ký hiệu $ khi bắt đầu.

 Không cần ký hiệu $ (Đô la) khi bắt đầu.

Có thể định nghĩa một biến bằng phép gán đơn giản.

Các hằng số không thể được xác định bằng các phép gán đơn giản. Chúng được định nghĩa bằng cách sử dụng hàm define()

Phạm vi mặc định là phạm vi truy cập hiện tại.

Các hằng số có thể được truy cập xuyên suốt mà không cần bất kỳ quy tắc phạm vi nào.

2. Session trong php

Session trong PHP là một cách để lưu trữ thông tin được sử dụng trên nhiều trang của toàn bộ trang web. Thông tin không được lưu trữ trên máy tính của người dùng, không giống như cookie. Trong một thư mục tạm thời trên máy chủ, một tệp sẽ được tạo ra để lưu trữ các biến session đã đăng ký và giá trị của chúng. Thông tin này sẽ có sẵn cho tất cả các trang trên trang web trong lần truy cập đó.

Khi bạn làm việc với một ứng dụng, bạn mở nó, thực hiện một số sửa đổi, rồi đóng nó. Điều này giống như một Phiên. Máy tính biết bạn là ai. Nó biết khi nào ứng dụng được bắt đầu và kết thúc bởi bạn.

Nhưng trên internet, máy chủ web không biết bạn là ai hoặc bạn làm gì vì địa chỉ HTTP không duy trì trạng thái. Vấn đề này được giải quyết bằng cách sử dụng các biến session  ($_SESSION['name']) bằng cách lưu trữ thông tin người dùng sẽ được sử dụng trên nhiều trang (ví dụ: tên người dùng, màu yêu thích, v.v.).

Theo mặc định, các biến phiên sẽ kéo dài cho đến khi người dùng đóng trình duyệt.

Vì vậy, các biến Phiên chứa thông tin người dùng đơn lẻ và có sẵn cho tất cả các trang trong một ứng dụng.

3. PEAR là viết tắt của từ gì?

PEAR là viết tắt của “PHP Extension and Application Repository”. Dịch sang tiếng việt thì anh em cứ hiểu nó là "Kho lưu trữ ứng dụng và tiện ích mở rộng PHP". PEAR là một khung và kho lưu trữ cho tất cả các thành phần PHP có thể tái sử dụng.

PEAR cung cấp trình độ lập trình cao hơn cho các nhà phát triển web. Nó chứa tất cả các loại đoạn mã và thư viện PHP. Nó cũng cung cấp cho bạn một giao diện dòng lệnh để tự động cài đặt các gói.

3. Giải thích sự khác biệt giữa $message và $$message.

$message

$$message

$message là một biến thông thường

$$message là một biến tham chiếu.

Dữ liệu được lưu trữ trong $message là cố định.

Giá trị của  $$ có thể thay đổi linh hoạt khi giá trị của biến thay đổi.

Nó có một tên cố định và lưu trữ một giá trị cố định

Nó lưu trữ dữ liệu về biến.

4. Các loại biến khác nhau trong PHP là gì?.

 Các loại biến PHP

Có 8 kiểu dữ liệu chính trong PHP được sử dụng để xây dựng các biến:

  1. Integer: Số nguyên là số nguyên không có dấu phẩy động. Ví dụ: 1253
  2. Doubles: Doubles là số dấu phẩy động. Ví dụ: 7.876
  3. Booleans: Nó đại diện cho hai trạng thái logic- đúng hoặc sai.
  4. NULL: NULL là kiểu đặc biệt chỉ có một giá trị duy nhất là NULL. Khi không có giá trị nào được gán cho một biến, nó có thể được gán bằng NULL.
  5. Mảng (Array): Mảng là một tập hợp các loại dữ liệu tương tự được đặt tên và sắp xếp theo thứ tự. Ví dụ: $colors = array("đỏ", "vàng", "xanh");
  6. Chuỗi (String): Chuỗi là một chuỗi các ký tự. Ví dụ: “Xin chào 2sontech!”
  7. Resources: Resources là các biến đặc biệt bao gồm các tham chiếu đến tài nguyên bên ngoài PHP (chẳng hạn như kết nối cơ sở dữ liệu).
  8. Objects: Một thể hiện của các lớp chứa dữ liệu và chức năng. Ví dụ: $mango = new Fruit();

5. Quy tắc đặt tên biến PHP là gì?.

Cần tuân theo hai quy tắc sau khi đặt tên biến PHP:

  • Một biến phải bắt đầu bằng ký hiệu đô la ($), theo sau là tên biến. Ví dụ: $price=100; trong đó $price là một tên biến còn 100 là giá trị.
  • Tên biến phải bắt đầu bằng một chữ cái hoặc dấu gạch dưới.
  • Tên biến có thể bao gồm các chữ cái, số hoặc dấu gạch dưới. Nhưng bạn không thể sử dụng các ký tự như + , – , % , & v.v.
  • Tên biến PHP không được chứa khoảng trắng.
  • Các biến PHP phân biệt chữ hoa chữ thường. Vì vậy, cả $NAME và $name đều được coi là các biến khác nhau

6. Sự khác biệt giữa "echo" và "print" trong PHP là gì?.

echo

print

echo có thể xuất ra một hoặc nhiều chuỗi.

print chỉ có thể xuất ra một chuỗi và nó luôn trả về 1.

echo nhanh hơn print vì nó không trả về bất kỳ giá trị nào.

print chậm hơn so với echo.

Nếu bạn muốn truyền nhiều hơn một tham số cho echo, nên sử dụng dấu ngoặc đơn.

Không cần sử dụng dấu ngoặc đơn với danh sách đối số.

 

7. Một số nhược điểm của PHP.

Nhược điểm của PHP là:

  • Vì nó là mã nguồn mở nên nó không an toàn. Bởi vì các tệp văn bản ASCII dễ dàng có sẵn.
  • Nếu chúng ta sử dụng nhiều tính năng của framework PHP và tool , nó sẽ gây ra hiệu suất kém cho các ứng dụng trực tuyến.
  • PHP có chất lượng xử lý lỗi kém. PHP thiếu các công cụ sửa lỗi cần thiết để tìm kiếm các cảnh báo và lỗi. Nó chỉ có một vài công cụ sửa lỗi so với các ngôn ngữ lập trình khác.

Những câu hỏi phỏng vấn cho Junior

8. PHP và HTML tương tác với nhau như thế nào ?.

PHP là ngôn ngữ phía server-side trong khi HTML là ngôn ngữ phía client-side. Vì vậy, PHP thực thi ở phía máy chủ và nhận kết quả dưới string, object, array và sau đó chúng ta sử dụng chúng để hiển thị các giá trị của nó trong HTML.

Sự tương tác này giúp thu hẹp khoảng cách và sử dụng tốt nhất cả hai ngôn ngữ.

9. Mục đích của @ trong PHP là gì?.

Trong PHP, @ được sử dụng để chặn các thông báo lỗi. Nếu bất kỳ lỗi nào xảy trong thời gian running mà trên dòng đó bao gồm ký hiệu @, thì lỗi đó sẽ được PHP xử lý và không hiển thị thông báo.

Việc sử dụng @ là một phương pháp lập trình rất tệ vì nó không làm cho lỗi biến mất, nó chỉ ẩn chúng đi và làm cho việc gỡ lỗi trở nên tồi tệ hơn rất nhiều vì chúng ta không thể thấy điều gì thực sự sai với mã của mình.

10. Các loại Mảng khác nhau trong PHP là gì?.

Có 3 loại mảng chính được sử dụng trong PHP:

Các loại mảng trong PHP

Indexed Array (Mảng tuần tự)

Mảng có numeric key được gọi là mảng được lập chỉ mục hay còn gọi là mảng tuần tự. Các giá trị được lưu trữ và truy cập theo tuần tự (tăng dần) mặc định bắt đầu là 0.

Associative Array (Mảng không tuần tự || mảng kết hợp)

Mảng kết hợp (associative array) là mảng (array) sử dụng các khóa (key) được đặt tên mà bạn gán cho chúng.

Multidimensional Array (Mảng đa chiều)

Mảng chứa một hoặc nhiều mảng bên trong chính nó được gọi là mảng đa chiều. Các giá trị được truy cập bằng nhiều chỉ số.

11. Giải thích các loại lỗi chính trong php.

Nó được chia làm 3 loại lỗi chính trong PHP là:

  • Notices: Thông báo là lỗi không nghiêm trọng có thể xảy ra trong quá trình thực thi tập lệnh. Đây không phải là hiển thị cho người dùng. Ví dụ: Truy cập một biến không xác định.
  • Warnings: Đây là lỗi nghiêm trọng hơn lỗi Notices ( thông báo ). Lỗi Warnings không làm gián đoạn quá trình thực thi tập lệnh. Theo mặc định, chúng được hiển thị cho người dùng. Ví dụ: " include() a file that doesn’t exist "
  • Fatal : Đây là loại lỗi nghiêm trọng nhất, khi xảy ra sẽ ngay lập tức chấm dứt việc thực thi tập lệnh. Ví dụ: Truy cập thuộc tính của một đối tượng không tồn tại hoặc require () một tệp không tồn tại.

12. Giải thích Traits trong php là gì.

Traits là một cơ chế cho phép bạn tạo mã code có thể sử dụng lại bằng PHP thường được dùng cho các ngôn ngữ không hỗ trợ đa kế thừa. Một lưu ý là Không thể tự khởi tạo trait .

Một đặc điểm nhằm giảm bớt các hạn chế của thừa kế đơn lẻ bằng cách cho phép nhà phát triển sử dụng lại các bộ phương thức một cách tự do trong nhiều class độc lập chứa trong các hệ thống phân cấp khác nhau của lớp.

13. JavaScript có tương tác với PHP không?

JavaScript là ngôn ngữ lập trình phía client-side, trong khi PHP là ngôn ngữ kịch bản phía backend-side. PHP có khả năng được generate trong các biến JavaScript và điều này có thể được thực thi dễ dàng trong trình duyệt. Do đó, có thể chuyển các biến sang PHP. Do đó, có thể chuyển các biến sang PHP bằng một URL đơn giản

14. Vòng lặp 'foreach' hoạt động như thế nào trong PHP?

Câu lệnh foreach là một cấu trúc vòng lặp được sử dụng trong PHP để lặp lại và lặp qua kiểu dữ liệu mảng.

Hoạt động của foreach rất đơn giản, với mỗi lần truyền giá trị, các phần tử được gán một giá trị và con trỏ được tăng lên. Quá trình này được thực hiện lặp đi lặp lại cho đến khi đạt đến cuối mảng.

Cú pháp sử dụng câu lệnh foreach trong PHP được đưa ra dưới đây:

foreach($array as $value) { 
 //Code inside the loop; 
}

14.Phương pháp được sử dụng nhiều nhất để hashing passwords trong PHP là gì?

Hàm crypt() được sử dụng cho chức năng này vì nó cung cấp một số lượng lớn các thuật toán băm có thể được sử dụng. Các thuật toán này bao gồm sha1, sha256 hoặc md5 được thiết kế rất nhanh và hiệu quả.

15.Sự khác biệt giữa các hàm include () và require () là gì?

Chức năng hàm include () :

Chức năng này được sử dụng để sao chép tất cả nội dung của một tệp được gọi trong hàm, văn bản vào một tệp mà nó được gọi.

Khi không thể tìm thấy tệp được include, nó sẽ chỉ đưa ra cảnh báo (E_WARNING) và tập lệnh sẽ tiếp tục thực thi.

Chức năng hàm require ():

Hàm require() hoạt động giống như hàm include(). Nó cũng lấy tệp được yêu cầu và sao chép toàn bộ mã vào tệp từ đó hàm require() được gọi.

Khi không thể tìm thấy tệp được bao gồm, nó sẽ tạo ra Fatal  ( lỗi nghiêm trọng ) (E_COMPILE_ERROR) và chấm dứt tập lệnh

16.Cookie là gì? Làm cách nào để tạo cookie trong PHP?

Cookie là một bản ghi nhỏ mà máy chủ cài đặt trên máy tính của khách hàng. Chúng lưu trữ dữ liệu về một người dùng trên trình duyệt. Nó được sử dụng để xác định người dùng và được nhúng vào máy tính của người dùng khi họ yêu cầu một trang cụ thể. Mỗi khi một PC tương tự yêu cầu một trang có chương trình, nó cũng sẽ gửi cookie.

Sau khi xác minh danh tính của người dùng ở dạng được mã hóa, cookie sẽ duy trì session id được tạo ra ở phía backend. Nó phải nằm trong trình duyệt của máy. Bạn chỉ có thể lưu trữ các giá trị chuỗi chứ không phải đối tượng vì bạn không thể truy cập bất kỳ đối tượng nào trên trang web hoặc ứng dụng web.

Theo mặc định, cookie là URL cụ thể. Ví dụ: cookie Gmail không được Yahoo hỗ trợ và ngược lại. Theo mặc định, cookie là tạm thời và tạm thời. Mỗi trang web có thể tạo 20 cookie trong một trang web hoặc ứng dụng web. 50 byte là kích thước ban đầu của cookie và 4096 byte là kích thước tối đa của cookie.

Trong PHP, chúng ta có thể tạo cookie bằng hàm setcookie():

setcookie(name, value, expire, path, domain, secure, httponly);

Ở đây name là bắt buộc và các tham số còn lại là tùy chọn.

17.Ý nghĩa của 'escaping to PHP' là gì?

Công cụ phân tích cú pháp PHP cần một cách để phân biệt mã PHP với các phần tử trang khác. Cơ chế để đạt được điều này được gọi là 'escaping to PHP'. Thoát một chuỗi có nghĩa là giảm sự mơ hồ trong dấu ngoặc kép được sử dụng trong chuỗi đó.

Ví dụ: Khi bạn đang xác định một chuỗi, bạn đặt nó trong dấu ngoặc kép hoặc dấu ngoặc đơn:

"Xin chào, s2sontech."

Nhưng nếu tôi bao gồm dấu ngoặc kép trong chuỗi thì sao?

"Xin chào "s2sontech.""

Bây giờ tôi có sự mơ hồ - trình thông dịch không biết chuỗi của tôi kết thúc ở đâu. Nếu tôi muốn giữ dấu ngoặc kép của mình, tôi có nhiều tùy chọn khác nhau. Tôi có thể sử dụng dấu ngoặc đơn xung quanh chuỗi của mình:

'Xin chào "s2sontech."'

Hoặc tôi có thể thoát khỏi dấu ngoặc kép của mình:

"Xin chào \"s2sontech.\""

Bất kỳ trích dẫn nào đứng trước dấu gạch chéo đều được thoát và được hiểu là một phần giá trị của chuỗi.

18.Ý nghĩa của một final method và một final class là gì?

subclass Class nào kế thừa lại thuộc tínhphương thức gọi là lớp con (subclass)

Từ khóa final trong phần khai báo của method ( phương thức ) chỉ ra rằng phương thức đó không thể bị ghi đè bởi các lớp con (subclasses). Một class được khai báo là final không thể được phân lớp (subclassed). Có thể sử dụng trực tiếp các final class mà không cần phải khởi tạo đối tượng.

Điều này đặc biệt hữu ích khi chúng ta tạo một class bất biến (là một đối tượng mà trạng thái của nó không thể bị thay đổi sau khi được tạo ra) như String class (ví dụ là 1 final class mà chỉ trả về các thuộc tính với constant cố định). Chỉ các class và phương thức có thể được khai báo là final, các thuộc tính không thể được khai báo là final.

Còn tiếp...

Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday