Page 1 sur 1

appeler une fonction incluse dans une autre

Posté : 24 janv. 2008, 15:12
par ptitgenie69
Bonjour à tous !

Petit soucis technique qui m'empèche de continuer un code.
Je cherche simplement a appeler une fonction qui est déclaré dans une autre fonction.

Le truc c'est que sa me repond qu'il ne trouve pas la fonction donc je pense qu'il
doit y avoir un moyen pour l'appeler du style parent.fonction();

Je m'explique avec du code qui ne veut rien dire ^^:

Code : Tout sélectionner

function chien(){ alert('ouaf'); pipi(); function pipi(){ alert('pssssss ..'); $encoreenvie--; if($encoreenvie==1)pipi(); } }
Voila, et donc je parle du moment ou j'appel la fonction
pipi en étant dans cette fonction, la 2nd fois ..

Et la, l'extension firbug de firefox me repond :
pipi is not a function
Donc je ne sais pas comment faire pour appeler la fonction pipi !
faut pourtant qu'il fasse ses besoin ce chien ..

Encore merci

EDIT :
je viens de voir sur dreamweaver que cette exemple fonctionnait TB .. je cherche un autre exemple

Posté : 24 janv. 2008, 15:16
par d0m
Si tu fais des fonctions imbriquées, cela implique que les fonctions internes ne peuvent être impliquées que dans les fonctions externes, c'est à dire son parent.
Si tu as besoin de l'utiliser en dehors, c'est qu'il ne faut pas la déclarer en interne.

Posté : 24 janv. 2008, 15:18
par ptitgenie69
en fait c'est pour m'éviter d'avoir a repasser en paramètre toutes les variables dont je me sert.
Et comme la fonction global fait plus de 500 lignes, c'ets très utilse

EDIT :
j'ai trouvé mon soucis ^^
En fait l'exemple que j'ai donné plus haut fonctionnais donc j'ai fait pareil.

voila, dsl du dérangement , hehe ++

Posté : 24 janv. 2008, 15:23
par d0m
Le problème c'est que ta fonction interne va utiliser des variables déclarées dans la fonction parente.
L'utiliser hors de celle ci n'a pas de sens puisque les variables ne seront pas disponibes.
Tu parles de toutes les variables dont tu te sert, elle ne seront plus là si tu l'utilise en dehors de ta fontion parente.

Posté : 24 janv. 2008, 15:40
par momox
Autant faire une classe dans ce cas la ;)
Une class chien avec des fonctions style manger, pipi, dormir suffira a ce que tu souhaites ;)
@+