Ceci va mettre tout le monde d’accord sur l’utilisation des ’ dans les tableaux _GET et _POST et consors compris.
http://fr2.php.net/manual/fr/language.types.array.php
A faire et à ne pas faire avec les tableaux
Pourquoi est-ce que $foo[bar] est invalide ?
Vous devez toujours utiliser les guillemets autour de la chaîne de caractères placée en tant qu’index du tableau. Par exemple, utilisez $foo[‘bar’] et non pas $foo[bar]. Mais, pourquoi $foo[bar] est faux ? Vous pourriez avoir vu la syntaxe suivante en vos vieux scripts :
Exemple 11-27. Accès aux index de tableaux, ancienne méthode
<?php
$foo[bar] = 'ennemi';
echo $foo[bar];
// etc.
?>
Cela est mauvais, mais ca marche. Pourquoi est-ce mauvais? La raison est que PHP attend une constante entre crochets (bar) plutôt qu’une chaîne (‘bar’, notez les guillemets). Or, PHP pourrait définir dans le futur des constantes qui, malheureusement pour votre code, auront ce nom. En fait, cela fonctionne car la constante indéfinie est transformée en chaîne ayant la même valeur.
[quote=""]
Note : Cela ne signifie pas que vous devez toujours mettre les clés entre guillemets. Vous n’allez pas utiliser les guillemets avec les clés qui sont des constantes ou des variables, car cela empêchera PHP de les interprêter correctement.
[/quote]
Exemple 11-28. Ne pas mettre les clés de tableaux entre guillemets
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', false);
// Tableau simple :
$array = array(1, 2);
$count = count($array);
for ($i = 0; $i < $count; $i++) {
echo "\nChecking $i : \n";
echo "Mauvais : " . $array['$i'] . "\n";
echo "Bon : " . $array[$i] . "\n";
echo "Mauvais : {$array['$i']}\n";
echo "Bon : {$array[$i]}\n";
}
?>
L’exemple ci-dessus va afficher :
Checking 0:
Notice: Undefined index: $i in /Users/iboom/Desktop/CVS/docs/mysql/mysql.fr/- on line 10
Mauvais :
Bon : 1
Notice: Undefined index: $i in /Users/iboom/Desktop/CVS/docs/mysql/mysql.fr/- on line 12
Mauvais :
Bon : 1
Checking 1:
Notice: Undefined index: $i in /Users/iboom/Desktop/CVS/docs/mysql/mysql.fr/- on line 10
Mauvais :
Bon : 2
Notice: Undefined index: $i in /Users/iboom/Desktop/CVS/docs/mysql/mysql.fr/- on line 12
Mauvais :
Bon : 2