Phương thức __get
Phương thức __get được tự động gọi khi có nỗ lực
lấy giá trị của một thuộc tính không tồn tại hoặc không thể truy cập
của đối tượng. Phương thức ma thuật này nhận
một tham số - tên của thuộc tính được yêu cầu.
Cú pháp
public function __get(string $name) {
// triển khai
}
Ví dụ
Tạo một lớp có phương thức __get, phương thức này sẽ trả về giá trị cho các thuộc tính không tồn tại:
<?php
class User {
private $data = [
'name' => 'John',
'age' => 30
];
public function __get($name) {
if (array_key_exists($name, $this->data)) {
return $this->data[$name];
}
return null;
}
}
$user = new User();
echo $user->name;
?>
Kết quả thực thi mã:
'John'
Ví dụ
Phương thức __get có thể được sử dụng để triển khai các thuộc tính động:
<?php
class DynamicProperties {
public function __get($name) {
return "Dynamic value for {$name}";
}
}
$obj = new DynamicProperties();
echo $obj->test;
?>
Kết quả thực thi mã:
'Dynamic value for test'