PHP: erstellen einer Kopie einer Referenz-variable
Wenn ich eine Kopie von einem Referenz-variable. Ist die neue variable ein Zeiger oder hat es den Wert der variable, der pointer bezieht sich damit auf?
- Referenzen sind keine Zeiger. Siehe php.net/manual/en/language.references.arent.php
- Manchmal muss man Sie benutzt, zum Beispiel bei der Umsetzung offsetget. Obwohl kein Zweifel daran, dass Referenzen in PHP sind ein einziges Chaos.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hält es das Wert. Wenn Sie wollte, um zu zeigen, verwenden Sie die
&
Betreiber zu kopieren eine andere Referenz:Let ' s machen ein quick-test:
Ausgabe
hello
daher$copy
ist nicht eine Referenz zu%base
.$ref
einen Verweis auf$base
ist, dass$copy = $ref
sollten genau die gleiche Wirkung wie$copy = $base
.$copy = $ref;
. Jetzt verstehe ich, das ist wie eine Dereferenzierung und kopiert die Daten, die die Referenz verweist. Ich denke, mit C-Zeiger macht dies verwirrend, da Sie zu dereferenzieren manuell.Lassen Sie mich murk das Wasser mit diesem Beispiel:
Ausgabe:
foreach ($anything as &$v) {}
variable$v
wird, halten Sie den Verweis auf Letzte array-element (das ist zwar verwirrend, ist es korrekt Verhalten), sollten Sie entwederunset($v)
oder im Hinterkopf behalten, dass$v
ist eine Referenz. Pro-Tipp: benutze var_dump() statt print_r(), es wird sich zeigen &Referenzen in arrays