Metoden __isset
Metoden __isset er en magisk metode i PHP og kaldes, når man forsøger at kontrollere eksistensen af en objektegenskab ved hjælp af funktionerne isset eller empty, når denne egenskab er utilgængelig eller ikke eksisterer. Metoden tager en parameter - navnet på den egenskab, der kontrolleres.
Syntaks
public function __isset(string $name): bool
Eksempel
Lad os oprette en klasse med den magiske metode __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));
?>
Resultatet af kodekørslen:
true
false
Eksempel
Brug med dynamiske egenskaber:
<?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));
?>
Resultatet af kodekørslen:
true
false