In PHP wird die Methode „__set()“ automatisch aufgerufen, wenn undefinierten oder unsichtbaren Klassenattributen in der aktuellen Umgebung Werte zugewiesen werden; das Syntaxformat ist „öffentliche Funktion __set($key, $value){...“ ; }“ erhält es zwei Parameter, einen für den Attributnamen und einen für den Attributwert.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
In der objektorientierten Programmierung bietet PHP eine Reihe magischer Methoden, die viel Komfort beim Programmieren bieten Rolle in PHP ist sehr wichtig. Magic-Methoden in PHP beginnen normalerweise mit __ (zwei Unterstrichen) und müssen nicht explizit aufgerufen werden, sondern werden unter bestimmten Bedingungen automatisch aufgerufen.
__set()-Methode
Wenn Sie einem Klassenattribut einen Wert zuweisen, der in der aktuellen Umgebung undefiniert oder unsichtbar ist, wird die __set()-Methode automatisch aufgerufen. Das Syntaxformat zum Definieren dieser Methode lautet wie folgt:
public function __set($key, $value){ ... ... ; }
Darunter ist der Parameter $key der Name der zu bedienenden Variablen und $value der Wert der Variablen $key.
【Beispiel】Im Folgenden wird anhand eines einfachen Beispiels die Verwendung der Methode __set() demonstriert.
<?php class Website{ public $name; private $url; public function __set($key, $value){ echo '为“'.$key.'”赋值“'.$value.'”失败!<br>'; } } $object = new Website(); $object -> name = 'php中文网'; $object -> url = 'https://www.php.cn/'; $object -> title = 'PHP教程'; ?>
Die laufenden Ergebnisse lauten wie folgt:
为“url”赋值“https://www.php.cn/”失败! 为“title”赋值“PHP教程”失败!
Unter Verwendung der Eigenschaften der __set()-Methode können wir die __set()-Methode verwenden, um Eigenschaften in der Klasse zuzuweisen oder zu ändern, die mit dem privaten Schlüsselwort geändert werden. Wie unten gezeigt:
<?php class Website{ public $name; private $url = ''; public function __set($key, $value){ if(isset($this->$key)){ $this -> $key = $value; }else{ echo '为“'.$key.'”赋值“'.$value.'”失败!<br>'; } } public function getUrl(){ echo $this -> url; } } $object = new Website(); $object -> name = 'php中文网'; $object -> url = 'https://www.php.cn/'; $object -> title = 'PHP教程'; $object -> getUrl(); ?>
Die laufenden Ergebnisse sind wie folgt:
为“title”赋值“PHP教程”失败! https://www.php.cn/
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die PHP-Methode __set magic. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!