Heim >Backend-Entwicklung >PHP-Tutorial >Einführung in die Verwendung der PHP-Magic-Methode

Einführung in die Verwendung der PHP-Magic-Methode

怪我咯
怪我咯Original
2017-07-14 14:31:021310Durchsuche

In der objektorientiertenProgrammierung stellt PHP eine Reihe von magischen Methoden bereit, die viel Komfort beim Programmieren bieten. Magische Methoden in PHP beginnen normalerweise mit (zwei Unterstrichen) und erfordern keine expliziten Aufrufe, sondern werden durch bestimmte Bedingungen ausgelöst. Dieser Artikel fasst kurz die in PHP verfügbaren magischen Methoden zusammen.

1.construct() Beim Instanziieren eines Objekts wird zuerst diese Methode des Objekts aufgerufen.

class Test { function construct() { echo "before"; } } $t = new Test(); 
class Test { function construct() { echo "before"; } } $t = new Test();

Die Ausgabe ist:
start
Wir wissen, dass das PHP5-Objektmodell und die Funktion mit demselben Klassennamen der Konstruktor sind Wenn wir dann den Konstruktor und die Methode „construct()“ gleichzeitig definieren, ruft PHP5 standardmäßig den Konstruktor anstelle der Funktion „construct()“ auf, sodass „construct()“ als Standardkonstruktor der Klasse
2.destruct() Wann Diese Methode wird aufgerufen, wenn ein Objekt gelöscht wird oder wenn die Objektoperation beendet wird.

class Test { function destruct() { echo "end"; } } $t = new Test();将会输出end 
class Test { function destruct() { echo "end"; } } $t = new Test();将会输出end
Wir können Operationen wie das Freigeben von Ressourcen am Ende der Objektoperation ausführen


3.get() Beim Versuch, ein Objekt zu lesen, ist dies nicht der Fall Das Attribut exist wird aufgerufen.
Wenn Sie versuchen, eine Eigenschaft zu lesen, die in einem Objekt nicht vorhanden ist, gibt PHP eine
Fehlermeldung aus. Wenn wir der Klasse eine Get-Methode hinzufügen, können wir diese Funktion verwenden, um verschiedene Operationen ähnlich der Reflektion in Java zu implementieren.

class Test { public function get($key) { echo $key . " 不存在"; } } $t = new Test(); echo $t->name; 就会输出:name 不存在 
class Test { public function get($key) { echo $key . " 不存在"; } } $t = new Test(); echo $t->name; 就会输出:name 不存在

4.set() wird aufgerufen, wenn versucht wird, einen Wert in eine Eigenschaft zu schreiben, die nicht existiert.

class Test { public function set($key,$value) { echo '对'.$key . "附值".$value; } } $t = new Test(); $t->name = "aninggo"; 就会输出:对 name 附值 aninggo 
class Test { public function set($key,$value) { echo '对'.$key . "附值".$value; } } $t = new Test(); $t->name = "aninggo"; 就会输出:对 name 附值 aninggo

5.call() Diese Methode wird aufgerufen, wenn versucht wird, eine Methode aufzurufen, die auf dem Objekt nicht vorhanden ist.

class Test { public function call($Key, $Args) { echo "您要调用的 {$Key} 方法不存在。你传入的参数是:" . print_r($Args, true); } } $t = new Test(); $t->getName(aning,go); 
class Test { public function call($Key, $Args) { echo "您要调用的 {$Key} 方法不存在。你传入的参数是:" . print_r($Args, true); } } $t = new Test(); $t->getName(aning,go);
Das Programm gibt Folgendes aus:

Die getName-Methode, die Sie aufrufen möchten, existiert nicht. Die Parameter sind: Array
(
[0] => aning
[1] => go
)
Die getName-Methode, die Sie aufrufen möchten, existiert nicht. Die Parameter sind: Array
(
[0] => aning
[1] => go
)

6.toString() wird beim Drucken eines Objekts verwendet Aufrufen von
Diese Methode ähnelt der toString-Methode von Java. Wenn wir das Objekt direkt drucken, rufen wir diese Funktion
class Test { public function toString() {
return " auf. Print Test"; } } $t = new Test(); echo $t; Wenn echo $t; ausgeführt wird, wird $t->toString(); aufgerufen, um
Print Test
7.clone() wird aufgerufen, wenn das Objekt geklont wird
class Test { public function clone() { echo "Ich wurde kopiert!" } }$t = new Test() ; t1 = clone $t;Programmausgabe: Ich wurde geklont!

Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung der PHP-Magic-Methode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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