Heim > Backend-Entwicklung > PHP-Tutorial > Wie erstelle ich unabhängige Objektkopien in PHP mit dem Clone-Operator?

Wie erstelle ich unabhängige Objektkopien in PHP mit dem Clone-Operator?

Susan Sarandon
Freigeben: 2024-12-20 14:58:15
Original
417 Leute haben es durchsucht

How to Create Independent Object Copies in PHP Using the Clone Operator?

Erstellen einer Objektkopie in PHP

PHP-Objekte werden von Natur aus als Referenz übergeben, sodass bei der Zuweisung von Objekten lediglich eine weitere Referenz auf das Original zugewiesen wird Objekt. Um dieses Problem zu lösen und unabhängige Objektkopien zu erstellen, stellt PHP den Klonoperator bereit.

Grund für die Übergabe als Referenz

In PHP sind Objekte effektiv Verweise auf Speicherbereiche enthält die Daten des Objekts. Durch die Referenzübergabe wird sichergestellt, dass alle am Objekt innerhalb der Funktion vorgenommenen Änderungen im Originalobjekt widergespiegelt werden, wodurch die ursprüngliche Absicht der objektorientierten Programmierung erhalten bleibt.

Operator für das Klonen von Objekten

Der Klonoperator ist speziell für die Erstellung einer Kopie eines Objekts konzipiert. Durch die Verwendung von $clonedObject = clone $originalObject wird ein neues Objekt mit identischen Eigenschaften und Werten wie das Originalobjekt erstellt. Das geklonte Objekt ist eine völlig unabhängige Einheit und alle an einem der Objekte vorgenommenen Änderungen wirken sich nicht auf das andere aus.

Beispielverwendung

Betrachten Sie das folgende Beispiel:

class A {
    public $b;
}

function set_b($obj) { $obj->b = "after"; }

$a = new A();
$a->b = "before";
$c = $a; // Assignment creates another reference to $a

set_b($a);

print $a->b; // Outputs "after"
print $c->b; // Also outputs "after"
Nach dem Login kopieren

In diesem Beispiel wird durch die Zuweisung von $a zu $c ein Verweis auf dasselbe Objekt erstellt. Wenn set_b($a) aufgerufen wird, werden die Änderungen am Originalobjekt vorgenommen und wirken sich sowohl auf $a als auch auf $c aus.

Um das gewünschte Ergebnis zu erzielen, kann clone wie folgt verwendet werden:

$a = new A();
$a->b = "before";
$c = clone $a; // Creates an independent copy of $a

set_b($a);

print $a->b; // Outputs "after"
print $c->b; // Outputs "before" (not affected by changes to $a)
Nach dem Login kopieren

In diesem Fall ist $c ein separates Objekt, das von Änderungen an $a nicht betroffen ist.

Das obige ist der detaillierte Inhalt vonWie erstelle ich unabhängige Objektkopien in PHP mit dem Clone-Operator?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage