Die Rolle von __set():
__set(): Wenn einem unzugänglichen Attribut (privat, geschützt, nicht vorhanden) ein Wert zugewiesen wird, führt PHP __set( ) Methode.
Wir haben oben gesagt, dass die Funktion von __set() folgende ist: Wenn einem unzugänglichen Attribut (privat, geschützt, nicht vorhanden) ein Wert zugewiesen wird, führt PHP die Methode __set() aus.
Was bedeutet das? Nehmen wir zum Beispiel das obige Beispiel als Beispiel. Wir haben die Pfirsiche, die Affen gerne essen, durch Bananen ersetzt, aber gemäß den Regeln ist das Schlüsselwort vor $food geschützt
und kann nicht direkt aufgerufen werden, aber wir müssen $food einen Wert zuweisen Tun?
<?php class Monkey{ public $name; protected $food; function __construct($name,$food){ $this->name = $name; $this->food = $food; } function sayHello(){ echo '<br/>我是' . $this->name . '我喜欢吃' . $this->food; } //魔术方法 function __get($pro_name){ //先判断$pro_name是否存在 if(isset($this -> $pro_name)){ return $this -> $pro_name; }else{ echo '属性值不存在'; } } function __set($pro_name,$value){ //先判断$pro_name是否存在 if(isset($this -> $pro_name)){ return $this -> $pro_name = $value; }else{ echo '属性值不存在'; } $monkey = new Monkey('猴子' , '桃子') $monkey -> sayHello(); echo '猴子喜欢吃' . $monkey -> food; $monkey -> food = '香蕉'; echo '<br/>'; $monkey -> sayHello();
Da unsere Lebensmittel geschützt sind, ist der Zutritt nicht gestattet. Dann müssen wir die magische Methode __set() verwenden, um dies zu erreichen. Die Methode __set() enthält zwei Parameter, die den Variablennamen bzw. den Variablenwert darstellen. Die beiden Parameter können nicht weggelassen werden.
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung der Instanz der magischen Methode __set() (PHP-Tutorial für fortgeschrittene Objekte). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!