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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
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");
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");
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
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
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"].
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"].