En PHP, l'accès dynamique aux valeurs de tableau a présenté un défi pour les développeurs à la recherche de solutions simples efficaces. Ce problème survient lorsque l'on tente de mapper une variable à l'aide d'un tableau dans une seule ligne de code. Alors que la syntaxe souhaitée, comme echo array('a','b','c')[$key];, entraîne une erreur, une solution de contournement utilisant une variable intermédiaire comme $variable = array('a','b ','c'); echo $variable[$clé]; devient nécessaire.
Bien que cette méthode résolve le problème immédiat, elle introduit une variable inutile. Pour approfondir la raison technique de cette limitation, la grammaire PHP restreint la notation en indice aux expressions variables, et non aux expressions générales. Cette grammaire diffère de nombreux autres langages de programmation qui permettent l'indice sur n'importe quelle expression.
Fait intéressant, la grammaire de PHP englobe des cas supplémentaires où l'indice sur des expressions non variables entraîne une syntaxe invalide, tels que :
$x = array(1,2,3); print ($x)[1]; //illegal, on a parenthetical expression, not a variable exp. function ret($foo) { return $foo; } echo ret($x)[1]; // illegal, on a call expression, not a variable exp.
Bien que l'incapacité d'écrire des expressions arbitraires en PHP puisse être considérée comme une lacune, cela pourrait provenir des limitations du générateur d'analyseur employé ou du désir de maintenir compatibilité ascendante.
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!