JavaScript is required

Xem đoạn mã lệnh sau đây. Sau khi thực hiện đoạn mã trên kết quả hiển thị sẽ là gì ?
class Object
{
function Object($entity)
{
$entity->name = "John";
}
}
class Entity
{
var $name = "Maria";
}
$entity = new Entity();
$obj = new Object($entity);
print $entity->name;
?>

A.
Maria
B.
John
C.
The script will throw an error message.
D.
JohnMaria
Trả lời:

Đáp án đúng: B


Đoạn mã PHP định nghĩa hai lớp là `Object` và `Entity`. 1. **Lớp `Entity`**: Lớp này có một thuộc tính `$name` được khởi tạo với giá trị là "Maria". 2. **Lớp `Object`**: Hàm tạo (constructor) của lớp này nhận một đối tượng `$entity` làm tham số và gán giá trị "John" cho thuộc tính `$name` của đối tượng `$entity` đó. 3. **Thực thi**: * Một đối tượng `$entity` thuộc lớp `Entity` được tạo ra. Lúc này, `$entity->name` có giá trị là "Maria". * Một đối tượng `$obj` thuộc lớp `Object` được tạo ra, và đối tượng `$entity` được truyền vào hàm tạo của `Object`. Bên trong hàm tạo của `Object`, `$entity->name` được gán giá trị mới là "John". * Cuối cùng, `print $entity->name;` in ra giá trị của thuộc tính `$name` của đối tượng `$entity`. Vì thuộc tính `$name` đã bị thay đổi thành "John" trong hàm tạo của `Object`, nên kết quả in ra sẽ là "John".

Câu hỏi liên quan