Page 1 sur 2

Comment savoir si une fonction a été appelée

Posté : 17 nov. 2010, 14:59
par Ehplod
Salut,

Tout est dans le titre.

Je souhaiterais savoir s'il existe un moyen pour savoir si une fonction dont on connait le nom à été appelé précédemment dans la page.

Exemple, je me connecte à ma bdd, je fais mes requêtes, je ferme ma bdd. Plus loin, je souhaite savoir si la fonction de fermeture de la bdd (mysqli_close) a été appelée.

Je connais debug_print_backtrace, mais il faut alors que je regarde dans le résultat si mysqli_close apparait.
Je veux faire plus simple car je connait la fonction dont je souhaite connaitre l'appel.

Merci

Re: Comment savoir si une fonction a été appelée

Posté : 17 nov. 2010, 15:08
par stealth35
t'as besoin de ca juste pour mysqli ou pour d'autre utilisation ?

Re: Comment savoir si une fonction a été appelée

Posté : 17 nov. 2010, 15:11
par Ehplod
Pour tout type de fonction, celle intégré à php/sql ou celle créé par moi.

Pourquoi ?
T'as quelque chose pour mysql ?

Re: Comment savoir si une fonction a été appelée

Posté : 17 nov. 2010, 15:32
par stealth35
Pour tout type de fonction, celle intégré à php/sql ou celle créé par moi.

Pourquoi ?
T'as quelque chose pour mysql ?
je visualise pas trop le besoin enfaite pour mysqli ca me paraisse un peu plus logique dans le sens ou c'est pour voir si la connexion est éteinte, mais si c'est pour d'autre fonction je vois pas trop a quoi ca peu servir ?

Re: Comment savoir si une fonction a été appelée

Posté : 17 nov. 2010, 17:41
par Ehplod
Bah c'est simple, j'ai une routine qui peut en fonction de quelque chose inclure un fichier suivi d'un exit afin d'afficher celui-ci et pas la suite du fichier de base.

Mais en fonction du moment ou l'include se fait, il peut y avoir appel d'une fonction une seconde fois.

Re: Comment savoir si une fonction a été appelée

Posté : 17 nov. 2010, 17:42
par stealth35
Bah c'est simple, j'ai une routine qui peut en fonction de quelque chose inclure un fichier suivi d'un exit afin d'afficher celui-ci et pas la suite du fichier de base.

Mais en fonction du moment ou l'include se fait, il peut y avoir appel d'une fonction une seconde fois.
et tu peu pas lancer la fonction 2 fois ?

Re: Comment savoir si une fonction a été appelée

Posté : 18 nov. 2010, 06:51
par Ehplod
Si, je peux l'exécuter autant de fois que je le veux, mais si je l'appel 2 fois, boom, erreur, la fonction a déjà été appelée.

Re: Comment savoir si une fonction a été appelée

Posté : 18 nov. 2010, 11:03
par stealth35
Si, je peux l'exécuter autant de fois que je le veux, mais si je l'appel 2 fois, boom, erreur, la fonction a déjà été appelée.
c'est plus une erreur de conception alors, sinon ce que tu cherche c'est pas possible, même avec xdebug

Re: Comment savoir si une fonction a été appelée

Posté : 18 nov. 2010, 13:07
par Ehplod
Nan, y a pas d'erreur de conception. :wink:
C'est juste une routine qui peut être déclenché par différents facteurs et ce, plus ou moins loin dans l'interprétation de la page php.


Mais, bon, je vais me débrouiller.

Merci.

Re: Comment savoir si une fonction a été appelée

Posté : 18 nov. 2010, 13:56
par AB
Bah tu peux ne la déclarer que si elle ne l'a pas déjà été, pour le reste à savoir si elle a déjà été appelée faut faire ça au niveau de ton script
if (!function_exists("ma_fonction"))
{
function ma_fonction($param) 
{
//...
}

Re: Comment savoir si une fonction a été appelée

Posté : 19 nov. 2010, 11:21
par Ehplod
Ah bah voilà...

Je ne connaissais pas.

Vu la discussion avec stealth35, j'ai vraiment du m'expliquer comme un bouseux...

Merci.

Re: Comment savoir si une fonction a été appelée

Posté : 19 nov. 2010, 11:39
par stealth35
ah d'accord c'est ca que tu voulais

parce que pour moi :
une fonction dont on connait le nom à été appelé précédemment dans la page
c'est :

test('truc');
------
savoir si test a été appelé

et pas, si y'a déjà une fonction qui s'appaelle 'test' :wink:

Re: Comment savoir si une fonction a été appelée

Posté : 19 nov. 2010, 17:20
par AB
Et oui, effectivement, j'avais déjà lu ce sujet mais je n'avais pas répondu car je n'avais pas la réponse telle que tu l'avais formulée.

C'est ce message qui m'a mis sur la piste :
Si, je peux l'exécuter autant de fois que je le veux, mais si je l'appel 2 fois, boom, erreur, la fonction a déjà été appelée.
...on aurait pu te répondre directement si à la place de
une fonction dont on connait le nom à été appelé précédemment dans la page
tu avais écris
une fonction dont on connait le nom à été déclarée (ou définie) précédemment dans la page
Comme quoi quand on pose des questions il ne faut pas hésiter à bien décrire non seulement ce que l'on veux, mais aussi le problème que l'on rencontre qui nous amène à poser la question, pour que ceux qui nous répondent puissent donner des réponses pertinentes et ainsi tout le monde gagne du temps :)

Re: Comment savoir si une fonction a été appelée

Posté : 19 nov. 2010, 17:21
par Ehplod
Bah pour moi appeler un fonction, c'est :
function test {}

Et exécuter une fonction c'est :
test('blabla')

Voila donc le pourquoi du comment qui dit le mossieur... :mrgreen:

Donc, fallait dire initialiser une fonction, non ?

Re: Comment savoir si une fonction a été appelée

Posté : 19 nov. 2010, 17:26
par AB
Bah non, si tu prends la définition du mot "initialiser" cela ne veux pas dire ça. Pour moi les mots "déclarer" ou "définir" sont plus appropriés.