Appeller de fonction "interclasses"

Résolu
DDelec24 Messages postés 109 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 23 octobre 2007 - 26 juin 2007 à 11:31
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 27 juin 2007 à 18:27
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

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
26 juin 2007 à 11:49
Salut,

essaie Nomdelaclasse :: nomdelafonction();

à+
3
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
26 juin 2007 à 11:50
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+
0
DDelec24 Messages postés 109 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 23 octobre 2007
26 juin 2007 à 12:16
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 [:)]
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 juin 2007 à 18:27
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.
0