Methode __isset
De methode __isset is een magische methode in PHP en wordt aangeroepen bij een poging om het bestaan van een eigenschap van een object te controleren met de functies isset of empty, wanneer deze eigenschap niet toegankelijk of niet bestaat. De methode accepteert één parameter - de naam van de te controleren eigenschap.
Syntaxis
public function __isset(string $name): bool
Voorbeeld
Laten we een klasse maken met een magische 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));
?>
Resultaat van de code-uitvoering:
true
false
Voorbeeld
Gebruik met dynamische eigenschappen:
<?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));
?>
Resultaat van de code-uitvoering:
true
false