Junior — Middle
Wordt de methode __set() automatisch aangeroepen wanneer we een waarde toewijzen aan een eigenschap van een klasse-object?
sobes.tech AI
Antwoord van AI
De __set()-methode in PHP wordt automatisch alleen aangeroepen wanneer u probeert een waarde toe te wijzen aan een niet-bestaande of niet-toegankelijke (bijvoorbeeld privé of beschermd) eigenschap van het object. Als de eigenschap is gedeclareerd en toegankelijk, wordt __set() niet aangeroepen en vindt de toewijzing rechtstreeks plaats.
Voorbeeld:
class Example {
private $data = [];
public function __set($name, $value) {
echo "__set aangeroepen voor eigenschap '$name' met waarde '$value'\n";
$this->data[$name] = $value;
}
public $existingProp;
}
$obj = new Example();
$obj->existingProp = 123; // __set wordt niet aangeroepen
$obj->newProp = 456; // __set wordt aangeroepen
In dit voorbeeld gebeurt de toewijzing $obj->existingProp = 123; rechtstreeks, terwijl $obj->newProp = 456; de methode __set() oproept, omdat newProp niet in de klasse is gedeclareerd.