Appeler une methode de la classe appelante dans une methode d'une classe appelée
Fermé
roland_d_alsace
Messages postés
2
Date d'inscription
jeudi 26 novembre 2020
Statut
Membre
Dernière intervention
26 novembre 2020
-
26 nov. 2020 à 16:44
roland_d_alsace Messages postés 2 Date d'inscription jeudi 26 novembre 2020 Statut Membre Dernière intervention 26 novembre 2020 - 26 nov. 2020 à 21:08
roland_d_alsace Messages postés 2 Date d'inscription jeudi 26 novembre 2020 Statut Membre Dernière intervention 26 novembre 2020 - 26 nov. 2020 à 21:08
A voir également:
- Appeler une methode de la classe appelante dans une methode d'une classe appelée
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Appeler en privé - Guide
- La zone de données passée à un appel système est insuffisante - Windows 11
- En préparant son diaporama, tom a pris quelques notes qui l'aideront lors de sa présentation. quand il présentera l'âne, il a prévu de raconter une anecdote sur cet animal. comment s'appelle l'âne de son histoire ? - Forum Windows
- Ouvrez cette page. dans le code de la page, modifiez la couleur de fond de la classe .pix. un code de 4 chiffres doit apparaître dans la grille. lequel ? ✓ - Forum Programmation
2 réponses
jordane45
Messages postés
38457
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mars 2025
4 740
26 nov. 2020 à 16:54
26 nov. 2020 à 16:54
Bonjour,
Déjà, Pense à préciser le langage dans les balises de code lorsque tu postes du code sur le forum
Explications ( à lire ENTIEREMENT !! ) disponibles ici
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite, quel est le souci ?
As tu un message d'erreur ? ( d'ailleurs, as tu activé l'affichage des erreurs php sur ton site ? )
Qu'as tu essayé ?
Pourquoi le fais tu comme ça ?
Ne peux tu pas envoyer directement les infos voulues en paramètres plutôt que de mettre le nom d'une méthode ?
Sachant que tu peux très bien faire un truc du genre
bien entendu, il aura fallu instancier ta class ( ici $object) pour pouvoir y accéder...
Déjà, Pense à préciser le langage dans les balises de code lorsque tu postes du code sur le forum
Explications ( à lire ENTIEREMENT !! ) disponibles ici
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite, quel est le souci ?
As tu un message d'erreur ? ( d'ailleurs, as tu activé l'affichage des erreurs php sur ton site ? )
Qu'as tu essayé ?
Pourquoi le fais tu comme ça ?
Ne peux tu pas envoyer directement les infos voulues en paramètres plutôt que de mettre le nom d'une méthode ?
Sachant que tu peux très bien faire un truc du genre
$object->$function_name(); // $function_name ici contiendra 'InfosListesClub'
bien entendu, il aura fallu instancier ta class ( ici $object) pour pouvoir y accéder...
roland_d_alsace
Messages postés
2
Date d'inscription
jeudi 26 novembre 2020
Statut
Membre
Dernière intervention
26 novembre 2020
Modifié le 26 nov. 2020 à 21:13
Modifié le 26 nov. 2020 à 21:13
Merci pour ta réponse et tes informations.
Le soucis est que je ne sais pas accéder à une méthode de le classe appelante dans la classe appelés (comment retrouver l'instance de classe appelante ?).
Pour l'instant je place mes méthodes (InfosListesClub) dans la classe appelée, mais ce n'est pas la solution, car c'est une classe générique en librairy et ces méthodes non rien à faire ici, c'est même un traitement facultatif qui dépend du contexte de l'appel.
Pourquoi je fais ainsi, car la méthode $clMail->AjouteUserListe doit préparer au préalable un objet que je passe dans cette fonction (InfosListesClub) dans mon exemple qui complète l'objet selon le contexte, et il y a plusieurs fonctions differentes selon le contexte et traitement.
Je vais essayer de passer en plus l’instance de la classe en paramètre ($this), un truc du genre :
pour ensuite dans ma méthode AjouteUserListe de l'instance $clMail pouvoir l'appeler via l'instance passée en paramètre
Peut-on faire + simple, et tout passer en un seul paramètre (instance de la classe appelante et le nom de la méthode à utiliser) ?
Merci.
Le soucis est que je ne sais pas accéder à une méthode de le classe appelante dans la classe appelés (comment retrouver l'instance de classe appelante ?).
Pour l'instant je place mes méthodes (InfosListesClub) dans la classe appelée, mais ce n'est pas la solution, car c'est une classe générique en librairy et ces méthodes non rien à faire ici, c'est même un traitement facultatif qui dépend du contexte de l'appel.
Pourquoi je fais ainsi, car la méthode $clMail->AjouteUserListe doit préparer au préalable un objet que je passe dans cette fonction (InfosListesClub) dans mon exemple qui complète l'objet selon le contexte, et il y a plusieurs fonctions differentes selon le contexte et traitement.
Je vais essayer de passer en plus l’instance de la classe en paramètre ($this), un truc du genre :
class Gmodel { .... public function genereListeMailClubs(){ .... $clMail = new GmailingListsClass(); $clMail->AjouteUserListe($Lu, $nom_liste, $params, $this, 'InfosListesClub'); ... } public function InfosListesClub(&$liste, $Lu, $clParam){ ....} }
pour ensuite dans ma méthode AjouteUserListe de l'instance $clMail pouvoir l'appeler via l'instance passée en paramètre
public function AjouteUserListe($Lu, $nom_liste, $clParam,$clAppel, $fctname_infos_liste){ ... // prétraitement if(method_exists($clAppel,$fctname_infos_liste)){ $clAppel->{$fctname_infos_liste}($liste, $Lu, $clParam); // appel de la méthode voulue de la classe appelante } // post traitement .... }
Peut-on faire + simple, et tout passer en un seul paramètre (instance de la classe appelante et le nom de la méthode à utiliser) ?
Merci.