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^^
A voir également:
- Conditionner l'appel à une fonction
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Fonction si et - Guide
- Appel privé - Guide
- Double appel - Guide
- Appel externe - Forum telephonie fixe
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 traitement
$bck est l'instanciation de la classe bck
Voici comment le mien fonctionne:
chaque fonction contient un type, un titre, un corps, et une fonction de traitement
function 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 bck
function 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?
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?