__isset Metodu
__isset metodu PHP'de sihirli bir metoddur ve bir nesnenin özelliğinin varlığını isset veya empty fonksiyonları ile kontrol etmeye çalışırken, bu özelliğe erişilemediğinde veya özellik mevcut olmadığında çağrılır. Metot bir parametre alır - kontrol edilen özelliğin adı.
Sözdizimi
public function __isset(string $name): bool
Örnek
__isset sihirli metoduna sahip bir sınıf oluşturalım:
<?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));
?>
Kodun çalıştırılmasının sonucu:
true
false
Örnek
Dinamik özelliklerle kullanım:
<?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));
?>
Kodun çalıştırılmasının sonucu:
true
false