Warum kann ich mit Ausdrücken in PHP nicht auf Array-Werte zugreifen?

DDD
Freigeben: 2024-11-24 00:30:10
Original
435 Leute haben es durchsucht

Why Can't I Access Array Values Using Expressions in PHP?

Dynamischer Array-Zugriff in PHP [Original: Access Array Value on the Fly]

PHP bietet die Möglichkeit, mithilfe der Klammernotation auf Array-Werte zuzugreifen ([]). Ein häufiges Problem besteht jedoch darin, dass dies bei der Arbeit mit Ausdrücken nicht direkt erreicht werden kann.

Problem:

Im folgenden Beispiel wird versucht, mit auf einen Array-Wert zuzugreifen Ein Ausdruck in Klammernotation führt zu einem Fehler:

echo array('a', 'b', 'c')[$key];
Nach dem Login kopieren

Lösung:

Der Grund für diesen Fehler ist eine Einschränkung in der PHP-Grammatik. Die tiefgestellte Notation ist nur für Variablenausdrücke gültig, nicht für allgemeine Ausdrücke. Um dies zu umgehen, können Sie eine Zwischenvariable verwenden:

$variable = array('a', 'b', 'c');
echo $variable[$key];
Nach dem Login kopieren

Technische Erklärung:

Die PHP-Grammatik erlaubt keine tiefgestellte Notation für Ausdrücke. Dies bedeutet, dass Sie es nicht auf das Ergebnis eines Funktionsaufrufs, von Klammern oder anderen Ausdrücken anwenden können. Dieses Verhalten unterscheidet sich von anderen Sprachen, in denen es möglich ist, Indizes anhand von Ausdrücken aufzulösen.

Zusätzliche Beispiele für ungültige Indizes:

$x = array(1, 2, 3);
print ($x)[1]; // Invalid: Subscripted expression is a parenthetical expression.

function ret($foo) { return $foo; }
echo ret($x)[1]; // Invalid: Subscripted expression is a call expression.
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum kann ich mit Ausdrücken in PHP nicht auf Array-Werte zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage