Methode __unset
De methode __unset is een van de magische methoden in PHP. Hij wordt automatisch aangeroepen wanneer men probeert een niet-bestaande of ontoegankelijke eigenschap van een object te verwijderen met de functie unset. De methode accepteert één parameter - de naam van de eigenschap die men probeert te verwijderen.
Syntaxis
public function __unset(string $name): void
Voorbeeld
Laten we een klasse maken met een magische methode __unset en proberen een niet-bestaande eigenschap te verwijderen:
<?php
class MyClass {
private $data = ['a' => 1, 'b' => 2];
public function __unset($name) {
echo "Poging om '$name' unset te maken\n";
unset($this->data[$name]);
}
}
$obj = new MyClass();
unset($obj->a);
unset($obj->c);
?>
Resultaat van de code-uitvoering:
Poging om 'a' unset te maken
Poging om 'c' unset te maken
Voorbeeld
Gebruik van __unset voor toegangscontrole tot private eigenschappen:
<?php
class User {
private $email = 'user@example.com';
public function __unset($name) {
if ($name === 'email') {
throw new Exception("Kan private eigenschap 'email' niet unsetten");
}
}
}
$user = new User();
unset($user->email);
?>
Resultaat van de code-uitvoering:
Exception: Kan private eigenschap 'email' niet unsetten