Ampersand wird am Ende des Arrays var_dump vorangestellt

8

Ich habe einen Teil des Tutorial-Codes geschrieben und bin nach der Ausführung etwas ziemlich Merkwürdiges passiert.

Meine Chrome-Erweiterung "Var Dumpling" hat den letzten Eintrag im Array nicht gefunden, da ein Und-Zeichen an den Typ des Werts angehängt wurde.

Ich habe mit diesem Code getestet:

%Vor%

Das Ergebnis des var_dump ist:

%Vor%

Sie können sehen, dass der letzte Eintrag &string(2) "ca" ist anstelle dessen, was ich erwarten würde string(2) "ca" . Es gibt kein Problem im Logikteil, ich kann $alphabet[2] aufrufen und es würde den Wert des letzten Eintrags ca zurückgeben.

Was ich mich wundere ist, ist diese Konvention oder irgendein seltsames Problem in PHP?

    
Pepijn 21.10.2014, 11:22
quelle

1 Antwort

8

Dies bezeichnet eine Variable als Referenz und ist absolut gültig. Meistens ignoriere es einfach und fahre fort.

In diesem speziellen Fall bedeutet dies wahrscheinlich, dass das letzte Element Ihres Arrays immer noch von Ihrer foreach-Schleife referenziert wird. Da Sie es dort als Referenz verwendet haben und das letzte Element der Schleife nach dem Schließen der Schleife noch vorhanden ist, ist die Referenz für dieses Element immer noch vorhanden. Oder kurz:

Nach Ihrer Schleife ist $ letter immer noch ein Verweis auf $ alphabet [2]. Wenn Sie unset($letter) , sollte das Und-Zeichen verschwinden.

Ссылка

    
ToBe 21.10.2014, 11:24
quelle

Tags und Links