Heim > Backend-Entwicklung > PHP-Tutorial > Ausführliche Erklärung der Instanz der magischen Methode __set() (PHP-Tutorial für fortgeschrittene Objekte)

Ausführliche Erklärung der Instanz der magischen Methode __set() (PHP-Tutorial für fortgeschrittene Objekte)

巴扎黑
Freigeben: 2023-03-07 14:48:01
Original
2647 Leute haben es durchsucht

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 &#39;<br/>我是&#39; . $this->name . &#39;我喜欢吃&#39; . $this->food;
}
//魔术方法
function __get($pro_name){
//先判断$pro_name是否存在
if(isset($this -> $pro_name)){
return $this -> $pro_name;
}else{
echo &#39;属性值不存在&#39;;
}
}
function __set($pro_name,$value){
//先判断$pro_name是否存在
if(isset($this -> $pro_name)){
return $this -> $pro_name = $value;
}else{
echo &#39;属性值不存在&#39;;
}
$monkey = new Monkey(&#39;猴子&#39; , &#39;桃子&#39;)
$monkey -> sayHello();
echo &#39;猴子喜欢吃&#39; . $monkey -> food;
$monkey -> food = &#39;香蕉&#39;;
echo &#39;<br/>&#39;;
$monkey -> sayHello();
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage