IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Passage de nom de classe


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 2
    Par défaut Passage de nom de classe
    Bonjour,

    Afin de rationaliser mon code j'aimerais pouvoir variabiliser un max.
    J'ai le cas suivant

    je construit une classe
    /* je récupère le nom de la classe à créer */
    $nomTable= strval($_GET["tableagerer"]);

    /* Selon la table à gérer on construit la classe */
    $objetTables = new $nomTable;

    Puis je veux faire un test qui utilise la méthode exists de la classe
    Dans l'exemple ci-dessous si l'id n'existe pas dans la table 'specialites' alors on fait ...*/

    if(!specialites::exists($id))

    plutôt que d'écrire trois if différents car je veux traiter trois objets avec le même code j'ai tenté ceci :

    if(!nomtable::exists($id)) ou
    if(!$nomtable::exists($id)) ou
    if(!objetTables::exists($id)) ou
    if(!$objetTables::exists($id))

    mais rien n'y a fait. Après avoir lu dans les manuels en ligne qu'on pouvait utiliser le signe & pour pointer vers un nom d'objet, j'ai essayé ceci

    if(!&objetTables::exists($id)) mais le résultat a été une erreur.

    Quand je mets le nom de la classe ça fonctionne mais quand j'essaie de pointer vers une variable qui a comme valeur le nom de la classe ça ne fonctionne pas.


    Quelqu'un pourrait-il aider un débutant en POO comme moi ?

    Merci d'avance pour votre aide.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    Salut,

    utilises plutôt les méthodes adaptées, à savoir call_user_func_array et compagnie :

    http://fr2.php.net/manual/fr/functio...func-array.php

    bye

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 2
    Par défaut ... et la bonne réponse est (merci à kaymak)
    if(!call_user_func($nomTable.'::exists',$id))

    au lieu de

    if(!specialites::exists($id))

    étant entendu que les variables $nomTable et $id sont valorisées au préalable.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage d'un nom de Class en paramètre
    Par doudou_rennes dans le forum Windows Forms
    Réponses: 2
    Dernier message: 23/08/2007, 11h48
  2. [Info]Passage d'applet à une classe
    Par adilou1981 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 02/08/2005, 14h12
  3. Réponses: 20
    Dernier message: 22/03/2005, 21h07
  4. Passer un text comme un nom de classe
    Par marie253 dans le forum Langage
    Réponses: 5
    Dernier message: 19/07/2004, 11h22
  5. [Chargement de classe][noms de classe relatifs]
    Par freudy dans le forum Langage
    Réponses: 5
    Dernier message: 21/04/2004, 11h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo