Heim >Backend-Entwicklung >PHP-Tutorial >Warum kann ich mit Ausdrücken in PHP nicht auf Array-Werte zugreifen?
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];
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];
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.
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!