Kaedah __isset
Kaedah __isset ialah kaedah ajaib dalam PHP dan dipanggil apabila cuba menyemak kewujudan sifat objek menggunakan fungsi isset atau empty, apabila sifat tersebut tidak boleh diakses atau tidak wujud. Kaedah ini menerima satu parameter - nama sifat yang disemak.
Sintaks
public function __isset(string $name): bool
Contoh
Mari buat kelas dengan kaedah ajaib __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));
?>
Keputusan pelaksanaan kod:
true
false
Contoh
Penggunaan dengan sifat dinamik:
<?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));
?>
Keputusan pelaksanaan kod:
true
false