Methode __isset
Die Methode __isset ist eine magische Methode in PHP und wird aufgerufen, wenn versucht wird, die Existenz einer Objekteigenschaft mit den Funktionen isset oder empty zu überprüfen, wenn diese Eigenschaft nicht zugänglich oder nicht vorhanden ist. Die Methode akzeptiert einen Parameter - den Namen der zu überprüfenden Eigenschaft.
Syntax
public function __isset(string $name): bool
Beispiel
Erstellen wir eine Klasse mit der magischen Methode __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));
?>
Ergebnis der Codeausführung:
true
false
Beispiel
Verwendung mit dynamischen Eigenschaften:
<?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));
?>
Ergebnis der Codeausführung:
true
false