Discussion:
cle de tableau sans quote
(trop ancien pour répondre)
luc2
2009-06-18 14:29:50 UTC
Permalink
sur certaines versions de php, on peut faire :

$tableau[cle]

sur d'autres, c'est refuse. il faut faire :

$tableau["cle"]

ce que je voudrais savoir, c'est a partir de quelle version de php c'est
comme ca, et s'il y a un moyen d'autoriser l'ancienne syntaxe avec une
option de php.ini
Olivier Miakinen
2009-06-18 14:46:54 UTC
Permalink
Post by luc2
$tableau[cle]
$tableau["cle"]
ce que je voudrais savoir, c'est a partir de quelle version de php c'est
comme ca,
À ce que je crois, ça a *toujours* été comme ça. Utiliser une constante
non définie à la place d'une chaîne de caractères a toujours fait
émettre une alerte de type E_NOTICE tandis que cette constante était
remplacée par la chaîne de caractères.

La différence ne doit donc pas tenir au numéro de version, mais plutôt à
une valeur différente de error_reporting :
http://fr3.php.net/manual/fr/errorfunc.configuration.php#ini.error-reporting
Post by luc2
et s'il y a un moyen d'autoriser l'ancienne syntaxe avec une
option de php.ini
Remettre error_reporting à E_ALL & ~E_NOTICE au lieu de E_ALL ? Cela
dit, c'est quand même une mauvaise idée de ne pas corriger les scripts.

Une correction intermédiaire serait de définir ceci au début des scripts
qui en ont besoin, pour chacune des valeurs en question :
define("cle", "cle");
John GALLET
2009-07-02 16:59:33 UTC
Permalink
Bonjour,
Post by Olivier Miakinen
À ce que je crois, ça a *toujours* été comme ça.
Non, en PHP 3 au moins et probablement au début de PHP 4 on te
permettait de faire attention tout seul à la syntaxe de tes variables et
leur déclaration. Mais ça date tellement de mathusalem que ton "toujours
été" est tout à fait cohérent.
Post by Olivier Miakinen
Une correction intermédiaire serait de définir ceci au début des scripts
define("cle", "cle");
La vraie question à se poser c'est surtout si $tableau[cle] est une
mauvaise syntaxe où si on voulait effectivement définir une constante
appelée cle et s'en servir de clef (ce qui est tout à fait légitime).

Séquence enculage de mouches: on pourrait même plutôt écrire
$tableau['cle'] que $tableau["cle"] sauf si on a l'intention de jouer
avec des clefs de nom dynamique comme $tableau["cle$toto"].

Bzz.
JG

Continuer la lecture sur narkive:
Loading...