slog9
Messages postés34Date d'inscriptiondimanche 16 novembre 2003StatutMembreDernière intervention24 octobre 2009
-
6 mars 2009 à 12:19
slog9
Messages postés34Date d'inscriptiondimanche 16 novembre 2003StatutMembreDernière intervention24 octobre 2009
-
7 mars 2009 à 14:44
Bonjour à tous!
Voilà, j'ai un petit problème avec l'utilisation de constantes (php
5.2), ça doit surement être un truc de rien du tout, un truc tout con à savoir,
mais jtrouve pas...
define("MA_CONSTANTE","toto"); // Définition de la constante
echo MA_CONSTANTE; // Dans la meme page, renvoie bien 'toto'
echo MA_CONSTANTE; // Depuis une autre page, renvoie 'MA_CONSTANTE' + Notice (Use of undefined constante)
Les constantes sont pas censées être globales?? j'ai bien vérifié les
quotes (testé avec ' et ") (j'ai vu dans d'autres postes que ça pouvait poser problème), et le
get_defined_constants() m'indique qu'aucune de mes variables définies
avec "define" ne sont reconnus...
cs_mike1310
Messages postés232Date d'inscriptionjeudi 30 août 2007StatutMembreDernière intervention31 juillet 2009 6 mars 2009 à 16:05
Quand tu fais define("MA_CONSTANTE","toto");
MA_CONSTANTE n'est défini que dans le fichier php ou tu l'as défini. Il faudrait utiliser un fichier externe que tu devrait inclure dans tes pages. (comme la très bien dit Orange73)
slog9
Messages postés34Date d'inscriptiondimanche 16 novembre 2003StatutMembreDernière intervention24 octobre 2009 7 mars 2009 à 12:12
Ok, Merci!
Donc quand ils disent dans le manuel : "Tous comme les superglobals , les constantes sont accessibles de manière globale. Vous pouvez la définir n'importe où, et y accéder depuis n'importe quelle fonction." ça fonctionne pas vraiment comme une variable globale au final...
La meilleure solution du coup, c'est d'inclure le fichier dans chaque page, ou de les définir en tant que globales, ou en variable session?
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 7 mars 2009 à 14:40
Attention, global ne signifie pas que tu puisse y accéder depuis des scripts différents, de même que les superglobales.
Elles ne sont accessibles que dans le script où elles ont été déclarées, d'où l'intérêt de les mettre à part et de faire un include.
En gros :
$truc = 'machin';
define('TRUC', 'machin');
function bidule() {
echo $truc;
// => marche pas et affiche une erreur, $truc n'existe pas pour la fonction qui est ici une variable locale.
// Il aurait fallu mettre function bidule($truc) et l'appeler avec bidule($truc);
echo TRUC;
// => affichera machin car la constante TRUC est globale, c'est à dire qu'elle peut être appelée
// même à l'intérieur d'une fonction
}
bidule();
Comme cela a été dit, je pense que le mieux est d'inclure les constantes plutôt que d'utiliser les sessions.
Cordialement,
Kohntark -
Vous n’avez pas trouvé la réponse que vous recherchez ?