Heim >Backend-Entwicklung >PHP-Tutorial >Warum kann ich mit Ausdrücken in PHP nicht auf Array-Werte zugreifen?

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

DDD
DDDOriginal
2024-11-24 00:30:10455Durchsuche

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];

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!

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