Heim  >  Artikel  >  Backend-Entwicklung  >  Codebeispiel einer Methode, die einen Referenztyp in PHP zurückgibt

Codebeispiel einer Methode, die einen Referenztyp in PHP zurückgibt

怪我咯
怪我咯Original
2017-07-14 14:36:341232Durchsuche

PHPs -Referenzen (d. h. das Hinzufügen eines kaufmännischen Und-Zeichens vor Variablen, Funktionen, Objekten usw.) // Das Wichtigste ist, die Variablen zu löschen, auf die durch verwiesen wird. Auf die referenzierten Variablen kann jedoch nicht zugegriffen werden. Die Bedeutung von Referenzen in PHP ist:

In diesem Artikel wird hauptsächlich die Methode zur Rückgabe der -Referenz vorgestellt Geben Sie PHP ein,

<?php
 
$color = &#39;YellowGreen&#39;;
 
function &getRef() {
    global $color;
    return $color;
}
 
function getCopy() {
    global $color;
    return $color;
}
 
$colorRef = &getRef();
$colorRef = &#39;Blue&#39;;
 
//$colorCopy = getCopy();
//$colorCopy = &#39;Black&#39;;
 
 
var_dump($color);
var_dump($colorRef);
//var_dump($colorCopy);

Führen Sie den obigen Code einmal aus und Sie werden fast verstehen, dass die Verwendung von &getRef() $colorRef an $color bindet, das heißt, $colorRef und $color sind zwei Variablen Es zeigt auf den gleichen Wert. Wenn Sie einen der Werte ändern, ändert sich auch der andere.

Wenn $color ein Array ist, gilt das gleiche Verhalten für den obigen Code in jeder Version von PHP4/5.

Das Problem tritt auf, wenn $color ein Objekt ist.

In PHP4 gibt getCopy weiterhin ein kopiertes Objekt zurück. &getRef() gibt eine Referenz zurück.

PHP5 ist etwas anders
Das neueste PHP5.2 verhält sich genauso wie PHP4, getCopy() gibt eine Kopie zurück, &getRef() gibt eine Referenz zurück.
Einige Versionen von PHP5 unterscheiden sich jedoch geringfügig, z. B. PHP5.1.6, was zeigt, dass getCopy() und &getRef() beide Referenzen sind.

Hier sind getCopy() und &getRef() zwei globale Funktionen. Wenn sie in eine Klasse eingefügt werden und zu Mitgliedsfunktionen der Klasse werden, sieht das ganz anders aus...

PS: Das Zurückgeben von Referenzen verbessert die Leistung nicht, aber manchmal verringert es die Leistung. Nehmen Sie es also nicht als selbstverständlich an, diese Funktion zur „Optimierung“ des Programms zu verwenden.

Das obige ist der detaillierte Inhalt vonCodebeispiel einer Methode, die einen Referenztyp in PHP zurückgibt. 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