Was bedeutet diese Signatur (&) in PHP?

8

Überlegen Sie:

%Vor%

Warum & ?

    
user198729 19.03.2010, 14:47
quelle

3 Antworten

10

In der PHP-Syntax bedeutet dies, dass die Funktion eine Referenz anstelle eines Wertes zurückgibt. Zum Beispiel:

%Vor%

Im obigen Beispiel würde das Entfernen der & von der Funktionsdeklaration dazu führen, dass die Variable $foo noch 'foo' enthält, da nur der Wert und nicht die Referenz von der Funktion zurückgegeben wurde.

Dies wurde in PHP4 häufiger verwendet, da Objekte nicht durch ihre Referenz übergeben und stattdessen geklont wurden. Aus diesem Grund mussten Objektvariablen als Referenz übergeben werden, um unerwünschtes Klonen zu vermeiden. Dies ist in PHP5 nicht mehr der Fall und Referenzen sollten nicht für diesen Zweck verwendet werden.

Funktionen, die Referenzen zurückgeben, sind jedoch auch nicht völlig unbrauchbar (oder schlechte Praxis, wenn sie nicht zum Ersetzen von Objektreferenzen verwendet werden).

Zum Beispiel habe ich sie persönlich beim Erstellen eines Skripts verwendet, das einen "Pfad" an eine Funktion übergibt, die den Verweis auf die Variable in diesem Pfad zurückgibt und es mir ermöglicht, den Wert festzulegen und den Wert zu lesen. Aufgrund der rekursiven Natur der Funktion wurde die Referenz benötigt.

Von rithiur

    
Young 19.03.2010, 14:54
quelle
11

Dies bedeutet, dass im Gegensatz zu einer Kopie ein Verweis auf das Ergebnis zurückgegeben wird.

Rückgabe von Referenzen in PHP

    
Manos Dilaverakis 19.03.2010 14:50
quelle
0

PHPs Meta-Zeichen für die Weiterleitung. Siehe Weitergabe nach Referenz

    
JYelton 19.03.2010 14:51
quelle

Tags und Links