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 :
|