Appel de fonction de class dans une fonction hors class

Par Frank Hélin, il y a 11 ans


Est-il possible d'appeler la fonction d'une class dans une fonction n'appartenant pas à cette class ? Merci.

11 réponses

Carouge10, il y a 11 ans

oui en lui passant l'instance de la class où il y a la fonction ou avec un extends suivant ce que vous désirez.

Frank Hélin, il y a 11 ans

Mais comment passe t-on une instance ? Avec un return et $this ?

Carouge10, il y a 11 ans

non en paramètre

Frank Hélin, il y a 11 ans

extends ne me semble pas adapaté car je ne souhaite pas passé ma fonction de classe dans une autre classe...

Frank Hélin, il y a 11 ans

Je sèche, je ne trouve pas. Un peu d'aide ?

skp, il y a 11 ans

Tu peux créer une instance de ta class directement dans ta méthode exemple :

class MaClass { public function MaMethode() { $autreClass = new AutreClass(); $autreClass->autreMethode(); } }

ou la solution de @Carouge10

class MaClass { public function MaMethode(AutreClass $autreClass) { $autreClass->autreMethode(); } } //ailleurs dans ton code $maClass = new MaClass(); $autreClass = new AutreClass(); $maClass->MaMethode($autreClass);
Frank Hélin, il y a 11 ans

Désolé mais je ne comprends pas autreMethode();

Frank Hélin, il y a 11 ans

Je ne veux pas passé de fonction de class dans une autre class, mais dans une fonction n'appartenant à aucune classe.

TransientDev, il y a 11 ans

Bonsoir,
tu peux créer un fichier avec ta fonction ("fonction.php" par exemple)

<?php function fonction() { // Fait des truc }

et il te suffit de faire un

include 'fonction.php';
Frank Hélin, il y a 11 ans

Ok Carouge, je crois comprendre. Corrige moi si je me trompe. J'ai affecté une variable à ma fonction de classe :

$newvaleur = $result->iptc($url, $code);

Ensuite :

global $newvaleur;

dans ma fonction, c'est ça l'idée ?

skp, il y a 11 ans

Si tu veux accéder à une méthode de class directement dans ton fonction tu peux faire comme ça

//ta fonction qui n'appartient à aucune class function maFonction() { //tu créer un instance de ta class $class = new Class(); //tu appelles ta méthode $resultat = $class->maMethode(); }

Si tu veux récuperer l'instance ou le résultat

//un endroit dans ton code $resultat = $class->iptc($url, $code); //ta fonction function maFonction() { global $resultat; //OU global $class; $resultat = $class->iptc($url, $code); }

Si tu dois uniquement passer le résultat le mieux c'est de faire

//ta fonction function maFonction($resultat) { //ton code } //un endroit dans ton code $resultat = $class->iptc($url, $code); $newResultat = maFonction($resultat);