Heim > Backend-Entwicklung > PHP-Tutorial > Wie geht PHP mit der Übergabe und dem Kopieren von Objekten um?

Wie geht PHP mit der Übergabe und dem Kopieren von Objekten um?

Patricia Arquette
Freigeben: 2024-12-04 09:03:11
Original
1067 Leute haben es durchsucht

How Does PHP Handle Object Passing and Copying?

Objektübergabe in PHP verstehen

In PHP können Objektverarbeitungsmechanismen rätselhaft erscheinen, insbesondere wenn es um das Kopieren von Objekten geht. Lassen Sie uns einem häufigen Missverständnis auf den Grund gehen, um die Wahrheit aufzudecken.

Wertübergabe vs. Referenz

In PHP 5 und höher werden Objekte von Natur aus per Referenz übergeben. Dies bedeutet, dass alle Änderungen, die an einem Objekt innerhalb einer Funktion vorgenommen werden, Auswirkungen auf das ursprüngliche Objekt außerhalb der Funktion haben. Dies ist anders als bei der Wertübergabe, bei der eine Kopie des Objekts erstellt wird.

Einschränkung des Zuweisungsoperators

Der bloße Vorgang der Zuweisung eines Objekts zu einer anderen Variablen, Wie durch $c = $a veranschaulicht, wird keine neue Kopie des Objekts erstellt. Beide Variablen, $a und $c, verweisen auf dasselbe zugrunde liegende Objekt.

Beispiel: Objektmodifikationsnachweis

Der bereitgestellte Codeausschnitt zeigt die Auswirkungen der Übergabe von an Objekt durch Referenz:

<?php

class A {
    public $b;
}

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

$a = new A();
$a->b = "before";
$c = $a;

set_b($a);

print $a->b; // Output: 'after'
print $c->b; // Output: 'after'

?>
Nach dem Login kopieren

Wie erwartet geben sowohl $a als auch $c „danach“ aus, was zeigt, dass die Änderungen vorgenommen wurden innerhalb von set_b() werden in beiden Variablen widergespiegelt.

Erstellen einer echten Kopie mit „clone“

Um eine echte Kopie eines Objekts zu erstellen, bietet PHP der „Klon“-Operator. Durch die Verwendung dieses Operators können Sie ein neues Objekt erstellen, das vom ursprünglichen Objekt unabhängig ist:

$objectB = clone $objectA;
Nach dem Login kopieren

In diesem Beispiel wird $objectB zu einer separaten Instanz derselben Klasse wie $objectA, jedoch mit einer eigenen unabhängiger Zustand.

Fazit

In PHP werden Objekte bis auf alles als Referenz übergeben anders. Der „Klon“-Operator bietet eine Möglichkeit, bei Bedarf echte Kopien von Objekten zu erstellen. Das Verständnis dieser Konzepte ist entscheidend, um unerwartetes Objektverhalten zu vermeiden und einen klaren und wartbaren Code sicherzustellen.

Das obige ist der detaillierte Inhalt vonWie geht PHP mit der Übergabe und dem Kopieren von Objekten um?. 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