Sobes.tech
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.