1. Verstehen Sie die Definition der magischen Methode in PHP
2. Verstehen Sie die Verwendungsszenarien der magischen Methode __clone()
3. Beherrschen Sie die Verwendung der magischen Methode __clone()
PHP reserviert alle Klassenmethoden, die mit __ (zwei Unterstriche) beginnen, als magische Methode . Daher wird beim Definieren von Klassenmethoden mit Ausnahme der oben genannten magischen Methoden empfohlen, ihnen kein __ voranzustellen.
Wenn wir beim Klonen eines Objekts eine spezielle logische Verarbeitung durchführen möchten, können wir es in dieser magischen Methode der Klasse A definieren , diese magische Methode ist __clone, und schreiben Sie dann Ihre eigene spezielle Geschäftslogik hinein
Zusammenfassung:
1 . In PHP ist __clone in der Klasse im folgenden Format definiert: öffentliche Funktion __clone() Beachten Sie hier, dass es 2 __ sein muss, was __clone sein muss, und es muss 0 Parameter annehmen, einen mehr und einen weniger Arbeit
2. Beim Klonen eines Objekts löst das System automatisch die definierte __clone-Methode der Klasse aus, in der sich das Objekt befindet
Jede Zusammenfassung wird durch Übung erhalten Jetzt verwenden wir Üben Sie, um Zusammenfassungen zu demonstrieren, die das Verständnis fördern und jede Zusammenfassung klarer und intuitiver machen können
Übungsziele:
1 __clone ist in der Klasse im folgenden Format definiert: öffentliche Funktion __clone(). Beachten Sie hier, dass es 2 __ geben muss, die __clone sein müssen, und dass sie 0 Parameter mehr und einen weniger annehmen müssen
Der spezifische Code lautet wie folgt:
<?php class Animal{ public function eat(){ } public function sleep(){ } //魔术方法 public function __clone(){ echo "自动执行了Animal类中的__clone方法<br/>"; } } $ani = new Animal(); ?>
Das laufende Ergebnis ist:
Leer
Es bedeutet, dass kein Fehler gemeldet wird
Als nächstes versuchen wir, Parameter zu dieser __clone-Methode hinzuzufügen und zu sehen, wie das laufende Ergebnis ist:
<?php class Animal{ public function eat(){ } public function sleep(){ } //魔术方法 public function __clone($name){ echo "自动执行了Animal类中的__clone方法<br/>"; } } $ani = new Animal(); ?>
Das laufende Ergebnis ist:
Schwerwiegender Fehler: Methode Animal::__clone () kann in D:E-classclass-codeclassingindex.php in Zeile 11 keine Argumente akzeptieren
Der Fehlermeldung nach zu urteilen, kann diese Methode keine Parameter tragen, daher sollte dies beachtet werden
Fall 2,
Praktische Ziele:
1. Beim Klonen eines Objekts löst das System automatisch die definierte __clone-Methode der Klasse aus, in der sich das Objekt befindet
Der spezifische Code lautet wie folgt:
<?php class Animal{ public function eat(){ } public function sleep(){ } //魔术方法 public function __clone(){ echo "自动执行了Animal类中的__clone方法<br/>"; } } $ani = new Animal(); $ani2 = clone $ani; ?>
Wir haben festgestellt, dass wir die __clone-Methode nicht manuell aufgerufen haben, das heißt, wir haben $ani->__clone() nicht geschrieben. aber diese Methode wurde trotzdem ausgeführt. Weil wir $ani2 = clone $ani; geschrieben haben, was dem manuellen Kopieren eines $ani-Objekts und dem anschließenden Definieren dieser magischen Methode in dieser Klasse entspricht, ist es wie Magie und wird plötzlich automatisch ausgeführt
Hier muss beachtet werden, dass es zwei Unterstriche gibt, nicht einen, sonst ist es keine magische Methode. Machen wir unten einen weiteren Test
Der spezifische Code lautet wie folgt:
<?php class Animal{ public function eat(){ } public function sleep(){ } //魔术方法 试着少一个_ public function _clone(){ echo "自动执行了Animal类中的__clone方法<br/>"; } } $ani = new Animal(); $ani2 = clone $ani; ?>
Das laufende Ergebnis lautet:
Leer
zeigt an, dass die __clone-Methode nicht automatisch aufgerufen wurde. Denken Sie also daran, dass es mehr oder weniger zwei Unterstriche __ gibt wird nicht funktionieren
1. In diesem Artikel werden hauptsächlich die spezifischen Verwendungsszenarien der __clone magic-Methode in PHP und die spezifische Implementierungsmethode untersucht
Ich hoffe das Artikel kann Ihnen helfen. Bitte helfen Sie mir, danke! ! !
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung der PHP-Magie-Methode __clone (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!