Was ist die PHP-Klonmethode?

藏色散人
Freigeben: 2023-03-06 16:56:01
Original
3545 Leute haben es durchsucht

Die PHP-Klonmethode bezieht sich auf das Klonen von PHP-Objekten. Wenn wir die Ganzzahl $a einer Variablen $b zuweisen, ist $b eine „Kopie“ von $a, aber die beiden hängen nicht zusammen und der Wert von $b ändert sich . Es hat keine Auswirkungen auf $a, und Änderungen im Wert von $a haben keine Auswirkungen auf $b.

Was ist die PHP-Klonmethode?

Empfohlen: „PHP-Video-Tutorial

PHP-Objektklonen: __clone()-Methode

Objektklonen: __clone()-Methode

Wenn wir die Ganzzahl $a einer bestimmten After-Variablen zuweisen $b, $b ist eine „Kopie“ von $a, aber die beiden sind irrelevant. Änderungen im Wert von $b wirken sich nicht auf $a aus, und Änderungen im Wert von $a haben keine Auswirkungen auf $b. Das Gleiche gilt für Arrays, aber für Objekte ist es anders. Wenn die Objektinstanz $a einer Variablen $b zugewiesen wird, ist $b keine „Kopie“ von $a, sondern eine Referenz auf $a wirkt sich auf $a aus, und die Wertänderung von $a wirkt sich auch auf $b aus.

Zum Beispiel:

<?php
class Cat{
public  $name;
function __construct($name){
echo &#39;Cat类启动&#39;;
$this->name = $name;
}
function __destruct(){
echo &#39;Cat类结束&#39;;
}
}
$a = new Cat("默默");//实例化类,调用无参数的构造方法
//$c被销毁时自动调用析构方法
$b=$a;
echo "改变之前:<br>";
echo "a->name:".$a->name."<br>";
echo "b->name:".$b->name."<br>";
$a->name="琳琳";
echo "改变之后:<br>";
echo "a->name:".$a->name."<br>";
echo "b->name:".$b->name."<br>";
?>
Nach dem Login kopieren

Laufendes Ergebnis:

Cat-Klasse beginnt vor der Änderung:

a->Name: Silent

b- >Name: still

Nach Änderung:

a->Name: Linlin

b->Name: Linlin

Aber oft benötigen wir eine Kopie des Objekts, nicht nur für die Objektzitierung. Zu diesem Zeitpunkt können wir das Schlüsselwort clone verwenden. Beachten Sie jedoch, dass die Referenz beibehalten wird, wenn das Klassenattribut „geklont“ vorhanden ist. Das heißt, sowohl die Referenz in der Kopie als auch die Referenz in der Originalklasse Zeigen Sie auf denselben Speicher. .

Zum Beispiel:

<?php
class Cat{
public $name;
function __construct($name){
echo &#39;Cat类启动&#39;;
$this->name = $name;
}
function __destruct(){
echo &#39;Cat类结束&#39;;
}
}
$a = new Cat("默默");//实例化类,调用无参数的构造方法
//$c被销毁时自动调用析构方法
$b=clone $a;
echo "改变之前:<br>";
echo "a->name:".$a->name."<br>";
echo "b->name:".$b->name."<br>";
$a->name="琳琳";
echo "改变之后:<br>";
echo "a->name:".$a->name."<br>";
echo "b->name:".$b->name."<br>";
?>
Nach dem Login kopieren

Operationsergebnisse:

Cat-Klassenstart vor der Änderung:

a->Name: stillschweigend

b->Name: stillschweigend

nach der Änderung:

a->Name: Linlin

b->Name: Silently

Cat-Klasse endet Cat-Klasse endet

Dem Attribut $name in dieser Klasse wird eine Referenz gegeben. Wenn also das Schlüsselwort clone zum Kopieren verwendet wird, wird der Name verwendet in der „Kopie“ ist dasselbe wie „Original“ $name zeigt auf dieselbe Variable

Das obige ist der detaillierte Inhalt vonWas ist die PHP-Klonmethode?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!