Appeller de fonction "interclasses"

[Résolu]
Signaler
Messages postés
109
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
23 octobre 2007
-
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Bonjour.
Je suis bloqué depuis hier sur un problème pour appeller une fonction.

Pour résumé:
Je possède une classe mysql pour gérer tout ce qui est requetes, report derreurs mysql, connexion etc...
J'ai aussi une classe utilitaires avec des fonctions pratiques que je me suis codé, notamment une pour gérer un flux rss.
Le problème c'est que ma fonction updateRSS situé dans la classe utilitaires fait appel a ma fonction query_mysql situé dans l'autre classe (mysql)

J'aurais donc voulu savoir quelle était la syntaxe pour appeller une fonction situé dans une autre classe (qui est dans un autre fichier mais je pense pas qu'il y ai un impact).

Le message d'erreur:
Fatal error: Call to a member function query_mysql() on a non-object in ...

Merci de votre réponse.
Cordialement, AigleNoir [:)]

4 réponses

Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Salut,

essaie Nomdelaclasse :: nomdelafonction();

à+
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
Salut,


Ca dépend un peu :

// si
class MyMySQL {
static function query() {}
}
// Alors
MyMySQL::query();



//si
class MyMySQL {
public function query() {}
}
// Alors
$mymysql = new MyMySQL(); // par exemple
$mymysql->query();


Cf : http://fr.php.net/manual/fr/langref.php


Mais par contre... un petit truc : si tu utilises PHP5 est que tu as MySQLi d'installé... Vas-y !
http://fr.php.net/manual/fr/ref.mysqli.php


A+
Messages postés
109
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
23 octobre 2007

Evangun:
Ta méthode m'oblige a tout modifier (je fais bien appel a ma fonction query, mais elle meme fait appel a la fonction de connexion etc.. situé dans la meme classe, il faut alors que je mette des self:: partout) mais ca parait etre la meilleure solution :)
pour toi J_G, je viens de regardé un peu le manuel et j'avoue que jai beau relire je me perd un peu entre abstract extends static et tout ca ^^

bref ca fonctionne en mettant dans la fonction updateRSS un $mysql = new mysql();
mais je ferais par la suite comme tu proposes evangun :)

merci! je connaissais meme pas cette méthode

Amicalement, AigleNoir [:)]
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Hello,

de tte façon, ta classe utilitaires doit utiliser plusieurs fois ta classe db, non ? Ou ce sera sans doute le cas un jour. Autant qu'elle collecte un objet db dans ce cas. Vu que PHP5 ne fait plus de copie dans ce cas de figure, tu ne perdras pas grand chose, si ce n'est rien du tout en ressources/perf.