Maison > développement back-end > tutoriel php > Pourquoi ne puis-je pas accéder aux valeurs de tableau à l'aide d'expressions en PHP ?

Pourquoi ne puis-je pas accéder aux valeurs de tableau à l'aide d'expressions en PHP ?

DDD
Libérer: 2024-11-24 00:30:10
original
497 Les gens l'ont consulté

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

Accès dynamique aux tableaux en PHP [Original : accéder à la valeur du tableau à la volée]

PHP offre la possibilité d'accéder aux valeurs du tableau en utilisant la notation entre crochets ([]). Cependant, un problème courant est l'incapacité d'y parvenir directement lorsque vous travaillez avec des expressions.

Problème :

Dans l'exemple suivant, tenter d'accéder à une valeur de tableau en utilisant une expression entre parenthèses donne lieu à un erreur :

echo array('a', 'b', 'c')[$key];
Copier après la connexion

Solution :

La raison de cette erreur est une limitation de la grammaire de PHP. La notation en indice n'est valide que pour les expressions variables, pas pour les expressions générales. Pour surmonter cela, vous pouvez utiliser une variable intermédiaire :

$variable = array('a', 'b', 'c');
echo $variable[$key];
Copier après la connexion

Explication technique :

La grammaire PHP n'autorise pas la notation en indice sur les expressions. Cela signifie que vous ne pouvez pas l'appliquer au résultat d'un appel de fonction, aux parenthèses ou à d'autres expressions. Ce comportement diffère des autres langages où il est possible de résoudre des indices par rapport à des expressions.

Exemples supplémentaires d'indices invalides :

$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.
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal