Phương thức __isset
Phương thức __isset là một phương thức ma thuật trong PHP và được gọi khi cố gắng kiểm tra sự tồn tại của thuộc tính đối tượng bằng các hàm isset hoặc empty, khi thuộc tính đó không thể truy cập hoặc không tồn tại. Phương thức nhận một tham số - tên thuộc tính cần kiểm tra.
Cú pháp
public function __isset(string $name): bool
Ví dụ
Tạo một lớp với phương thức ma thuật __isset:
<?php
class User {
private $data = [
'name' => 'John',
'age' => 30
];
public function __isset($name) {
return isset($this->data[$name]);
}
}
$user = new User();
var_dump(isset($user->name));
var_dump(isset($user->email));
?>
Kết quả thực thi mã:
true
false
Ví dụ
Sử dụng với các thuộc tính động:
<?php
class DynamicProperties {
private $storage = [];
public function __isset($name) {
return array_key_exists($name, $this->storage);
}
public function __set($name, $value) {
$this->storage[$name] = $value;
}
}
$obj = new DynamicProperties();
$obj->test = 'value';
var_dump(isset($obj->test));
var_dump(isset($obj->unknown));
?>
Kết quả thực thi mã:
true
false