appeler une fonction incluse dans une autre

Eléphant du PHP | 132 Messages

24 janv. 2008, 15:12

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
Modifié en dernier par ptitgenie69 le 24 janv. 2008, 15:17, modifié 1 fois.

d0m
Mammouth du PHP | 1141 Messages

24 janv. 2008, 15:16

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.
Modifié en dernier par d0m le 24 janv. 2008, 15:19, modifié 1 fois.

Eléphant du PHP | 132 Messages

24 janv. 2008, 15:18

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 ++

d0m
Mammouth du PHP | 1141 Messages

24 janv. 2008, 15:23

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.

Mammouth du PHP | 1511 Messages

24 janv. 2008, 15:40

Autant faire une classe dans ce cas la ;)
Une class chien avec des fonctions style manger, pipi, dormir suffira a ce que tu souhaites ;)
@+