JavaScript is required

Dòng nào để khởi tạo một đối tượng thuộc lớp có tên foo trong PHP

A.

$obj = new $foo;

B.

$obj = new foo;

C.

$obj = new foo ();

D.

obj = new foo ();

Trả lời:

Đáp án đúng: C


Trong PHP, để khởi tạo một đối tượng từ một lớp (class), bạn sử dụng từ khóa new theo sau là tên của lớp. Cú pháp đúng là $object = new ClassName(); hoặc $object = new ClassName; (nếu không có tham số cho constructor). Trong trường hợp này, tên lớp là "foo".

  • Đáp án 1: $obj = new $foo; sử dụng $foo, điều này có nghĩa là PHP sẽ hiểu $foo là một biến chứa tên của lớp, chứ không phải là tên lớp trực tiếp. Vì vậy, đáp án này không chính xác trong ngữ cảnh câu hỏi.
  • Đáp án 2: $obj = new foo; là một cú pháp đúng để khởi tạo đối tượng từ lớp foo nếu lớp foo không có constructor hoặc constructor không yêu cầu tham số.
  • Đáp án 3: $obj = new foo (); là một cú pháp đúng để khởi tạo đối tượng từ lớp foo. Dấu ngoặc đơn () cho biết việc gọi constructor của lớp.
  • Đáp án 4: obj = new foo (); thiếu dấu $ ở phía trước obj, điều này sẽ gây ra lỗi cú pháp trong PHP.

Như vậy, cả đáp án 2 và 3 đều đúng. Tuy nhiên, đáp án 3 tường minh hơn về việc gọi constructor, nên được ưu tiên hơn nếu có sự lựa chọn.

Câu hỏi liên quan