cle de tableau sans quote

Le
luc2
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #19594331
Le 18/06/2009 16:29, luc2 a écrit :
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,



À 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

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
Le #19684071
Bonjour,

À 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.

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");



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
Publicité
Poster une réponse
Anonyme