|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre Expert
![]() Étudiant Inscription : février 2004 Messages : 2 168 ![]() |
Salut,
Voila comment se présente ma page: Code :
Je n'ai rien trouvé qui expliquerait ça. Y a il un moyen pour réexecuter la constante (et non la fonction)? Edit Mm j'ai aussi remarqué que quand je fais mon DEFINE(), celui-ci s'execute aussitôt. Donc si je fais DEFINE("TEST", "ok"); il s'affiche ok, même si je n'ai pas écrit TEST. Comment gérer ça ? Merci à tous |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Salut
Tu confonds le define() de PHP, qui définit des constantes, avec le #define du C, qui définit des macros. La différence est qu'en C tu peux définir des blocs de code et les exécuter à l'aide de ta macro, tandis qu'en PHP c'est simplement pour définir un nom de variable dont la valeur ne changera pas (= une constante). Si tu souhaites mettre le nom d'une fonction dans une constante, je pense qu'il te faut plutôt faire ainsi (mais je n'en vois pas trop l'intérêt) : Code :
[Edit] Ce qu'il se passe dans ton code est que ta fonction est appelée dans le define et c'est le retour qui est affecté à STEP. Donc le "ok" est affiché dans la ligne de define et non dans la boucle, tandis qu'une chaîne vide (le retour de ta fonction) est affiché dans la boucle.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Étudiant Inscription : février 2004 Messages : 2 168 ![]() |
Merci de ta réponse ça m'éclaire.
Je m'explique pourquoi je tiens à garder cette syntaxe: dans mon script l'utilisateur est censé mettre des marques dans une page (où il veut). Je veux bien qu'il mette simplement calcul_progress() (ou step()), mais je trouve ça plus... "beau" de mettre STEP S'il n'y a pas de solution tant pis j'aurai essayé |
|
|
00
|
|
|
#4 | ||
![]() ![]() Inscription : septembre 2005 Messages : 1 741 ![]() |
A la place du echo met return
Ou enregistre la chaine dans une variable et fait un return de cette chaîne. Code :
|
||
|
|
00
|
|
|
#5 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
La solution proposée ne te convient-elle pas ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Étudiant Inscription : février 2004 Messages : 2 168 ![]() |
Tu parles du call_user_func(STEP); ?
Ca ça fonctionnait mais finalement j'ai opté pour des fonctions bêtes et machantes (STEP()). Merci à vous. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com