Les tableaux
<<<
P $foo[bar] Les tableaux
>>>

4.2.6.4 Attention aux tableaux
4.2.6 Les tableaux
4.2 Les types
4 Référence
 Manuel PHP

->P $foo[bar]

4.2.6.4.1 P $foo[bar]

Dans vos vieux scripts, vous pouvez avoir utilisé la syntaxe suivante :

<?php
  $foo
[bar] = 'ennemi';
  echo
$foo[bar];
?>
Cela est mauvais, mais ca marche. Pourquoi est-ce mauvais? La raison est que PHP réclame une expression entre les crochets (comme indiqué dans la section sur la syntaxe des tableaux). Cela signifie que vous pouvez écrire quelque chose comme :

<?php
  
echo $arr[ foo(true) ];
?>
Ceci est un exemple d'utilisation de retour de fonction dans un index de tableau. PHP reconnait aussi les constantes, et vous pouvez avoir déjà rencontré E_* .

<?php
  $error_descriptions
[E_ERROR] = "Une erreur fatale est survenue";
  
$error_descriptions[E_WARNING] = "PHP a généré une alerte";
  
$error_descriptions[E_NOTICE] = "Ceci est juste une note grâcieuse";
?>
Notez que E_ERROR est aussi un identifiant vlaide, tout comme bar dans le premier exemple. Mais le dernier exemple revient à écrire :

<?php
  $error_descriptions
[1] = "Une erreur fatale est survenue";
  
$error_descriptions[2] = "PHP a généré une alerte";
  
$error_descriptions[8] = "Ceci est juste une note grâcieuse";
?>
car E_ERROR égale 1 , etc.

Alors, comment se fait-t-il que $foo[bar] fonctionne? C'est parce que bar est considéré comme une constante. Cependant, dans ce cas, aucune constante n'a pour nom bar . PHP suppose alors que vous voulez dire bar littéralement, c'est-à-dire la chaîne "bar" , mais que vous avez oublié les guillements.

Sommaire :

<< P $foo[bar] >>
Les tableaux Attention aux tableaux Les tableaux