Metode __isset
Metode __isset adalah metode ajaib dalam PHP dan dipanggil ketika mencoba memeriksa keberadaan properti objek menggunakan fungsi isset atau empty, ketika properti tersebut tidak dapat diakses atau tidak ada. Metode ini menerima satu parameter - nama properti yang diperiksa.
Sintaks
public function __isset(string $name): bool
Contoh
Mari buat kelas dengan metode 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));
?>
Hasil eksekusi kode:
true
false
Contoh
Penggunaan dengan properti dinamis:
<?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));
?>
Hasil eksekusi kode:
true
false