Conditionner l'appel à une fonction
Smoking bird
Messages postés
911
Statut
Membre
-
Smoking bird Messages postés 911 Statut Membre -
Smoking bird Messages postés 911 Statut Membre -
Bonjour,
J'essaie actuellement de changer ma façon de coder pour rendre mon travail plus rapide et plus simple à effectuer. Ca implique des recherches dans différentes directions, or il se trouve que la direction que j'ai prise dernièrement m'oppose à un obstacle de taille, dont je ne saurais me défaire.
Voilà:
j'ai besoin de pouvoir rentrer une fonction dans un argument d'une autre fonction, ce qui fonctionne très bien, mais j'ai surtout besoin que la fonction-argument ne soit pas déclenchée lors de l'appel de la fonction-fonction, mais durant l'exécution de cette dernière.
Jusqu'à maintenant, mes scripts exécutent toujours la fonction-argument quand j'appelle la fonction-fonction,
Comment faire pour éviter ça?
Cordialement,
Smoke
PS: je code en php^^
J'essaie actuellement de changer ma façon de coder pour rendre mon travail plus rapide et plus simple à effectuer. Ca implique des recherches dans différentes directions, or il se trouve que la direction que j'ai prise dernièrement m'oppose à un obstacle de taille, dont je ne saurais me défaire.
Voilà:
j'ai besoin de pouvoir rentrer une fonction dans un argument d'une autre fonction, ce qui fonctionne très bien, mais j'ai surtout besoin que la fonction-argument ne soit pas déclenchée lors de l'appel de la fonction-fonction, mais durant l'exécution de cette dernière.
Jusqu'à maintenant, mes scripts exécutent toujours la fonction-argument quand j'appelle la fonction-fonction,
Comment faire pour éviter ça?
Cordialement,
Smoke
PS: je code en php^^
Configuration: Windows XP Opera 9.63
3 réponses
-
Bonjour,
function fonction1(a,b,c,d){ ///actions diverses fonction1(d);//appel de la fonction 2 //autres actions } function fonction2(d){ //actions ... } et l'appel: $result=fonction1('toto','babab','jiji','alpha'); -
Je ne comprends pas ton code :s...
Voici comment le mien fonctionne:
chaque fonction contient un type, un titre, un corps, et une fonction de traitementfunction exemple(){ $fTitre='Titre'; $fType='none'; //indique si le formulaire envoi des fichiers ou non $fCorps.='corps...'; //description du formulaire function eTraitement() { //instructions de traitement du formulaire } $bck->formed(eTraitement(),$fType,$fTitre,$fCorps); }
$bck est l'instanciation de la classe bckfunction formed($traitement,$type,$titre,$corps) { echo "<div class='eachForm'>\n"; echo "<p class='analyse'>"; $trigger=$_GET['trigger']; $ref=$_GET['ref']; //je voudrais que la fonction enregistrée dans l'argument $traitement ne s'exécute qu'à partir d'ici, j'ai l'impression que c'est ce que tu tentes de m'expliquer dans ton bout de code, mais j'arrive pas à comprendre :s $traitement; echo "</p>\n"; echo "<form action='' method='post'"; echo ($type=='download') ? " enctype='multipart/form-data' " : ""; echo ">\n"; echo "<p class='bckTitre'>$titre</p>\n"; echo "<p class='bckTexte'>\n$corps\n"; echo (preg_match('/aucun| ne peut /i',$corps)) ? '' : "<input type='submit' class='enregistrer' value='Envoyer' />"; echo "</p>\n</form>"; echo "</div>"; }-
il ne faut pas mettre deux fonctions l'une dans l'autre mais les séparer et mettre l'appel de la deuxième fct dans la première
//fonction 1 function exemple(){ $fTitre='Titre'; $fType='none'; //indique si le formulaire envoi des fichiers ou non $fCorps.='corps...'; //description du formulaire eTraitement(); //appel fonction 2 $bck->formed(eTraitement(),$fType,$fTitre,$fCorps); } //fonction 2 function eTraitement() { //instructions de traitement du formulaire }
-
-
J'ai fait le test, je les ai séparées comme tu l'as montré, mais ça ne change rien: toujours pas moyen de faire s'exécuter la fonction pendant l'exécution de $bck->formed.
Je crois que je pourrais conserver les traitements séparés de leurs fonction, et inclure un switch à formed, avec une variable indiquant quel formulaire a été appellé. Du coup, l'exécution du traitement se ferait au moment qui m'intéresse, mais ça veut dire qu'il me faudra retoucher la fonction formed à chaque écriture de fonction, ce qui ne correspond pas à mes objectifs de réduction de travail et de lisibilité (:
As-tu d'autres idées?