Heim  >  Artikel  >  Backend-Entwicklung  >  Warum erlaubt PHP die direkte Interpolation assoziativer Array-Elemente in Strings in doppelten Anführungszeichen?

Warum erlaubt PHP die direkte Interpolation assoziativer Array-Elemente in Strings in doppelten Anführungszeichen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-01 06:45:02663Durchsuche

Why Does PHP Allow Direct Interpolation of Associative Array Elements in Double-Quoted Strings?

Interpolation assoziativer Arrays in PHP: Ein unerwartetes Verhalten

Bei der Interpolation assoziativer Array-Elemente in PHP können bestimmte Verhaltensweisen Überraschung hervorrufen. Betrachten Sie das folgende Beispiel:

<code class="php">$ha = array('key1' => 'Hello to me');

print $ha['key1'];   // correct (usual way)
print $ha[key1];     // Warning, works (use of undefined constant)

print "He said {$ha['key1']}"; // correct (usual way)
print "He said {$ha[key1]}";   // Warning, works (use of undefined constant)

print "He said $ha['key1']";   // Error, unexpected T_ENCAPSED_AND_WHITESPACE
print "He said $ha[ key1 ]";   // Error, unexpected T_ENCAPSED_AND_WHITESPACE
print "He said $ha[key1]";     // !! correct (How Comes?)</code>

Seltsamerweise scheint die letzte Zeile gültiger PHP-Code zu sein. Warum ist das so?

Erklärung

Vertrauen Sie der scheinbar ungewöhnlichen Syntax. Laut offizieller Dokumentation werden alle Methoden der Variableninterpolation unterstützt. Dazu gehört der Zugriff auf Array-Elemente innerhalb von Zeichenfolgen in doppelten Anführungszeichen, ohne sie in geschweifte Klammern zu setzen.

Der Grund für dieses besondere Verhalten ist vielleicht nicht ganz offensichtlich, aber es rührt von der historischen Entwicklung von PHP her, in der sich unweigerlich Inkonsistenzen eingeschlichen haben. Dennoch ist diese Funktion zuverlässig und weithin als gültige PHP-Syntax akzeptiert.

Das obige ist der detaillierte Inhalt vonWarum erlaubt PHP die direkte Interpolation assoziativer Array-Elemente in Strings in doppelten Anführungszeichen?. 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