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 :

[POO] Passage d'objet


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 4
    Points
    4
    Par défaut [POO] Passage d'objet
    Bonjour

    je cherche la méthode pour utiliser un objet d'une classe dans une autre classe sans utiliser extends

    merci de votre aide

  2. #2
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    Bizarre comme question, qu'est ce qui t'empêcherait de faire un new d'un objet dans un autre ?

  3. #3
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    Tu parles d'une methode statique ?

    tu peux faire
    If it's not broken, don't fix it.
    BiliBa Built on top of Zend Framework

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    en faite dans une class quelquonque, je fait appelle a ma classe de connexion SQL par un extends puis par $this->...

    par contre si je met le nom de l'objet de connexion qui lui n'est pas initialiser dans la classe ben voici l'erreur retourné

    Fatal error: Call to a member function on a non-object

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    ya aussi un autre problème qui vient de ca aussi

    sur mon index je choisi le language de l'utilisateur

    include("./class/class_languageSite.php");
    $obj_language = new languageSite();
    include (".".$obj_language->chooseLanguage());


    donc j'inclu tel ou tel page contenant les variables des texte

    si ensuite je fait un echo $texte";

    cela marche sans soucis
    cepandedant si je fait appele a une fonction d'une classe et que dans cette fonction j'ai echo $texte;
    cela n'affiche rien

    je comprend pas trop pourquoi

  6. #6
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    tu as un exemple code, parce que la ca devient difficile a conceptualiser?
    If it's not broken, don't fix it.
    BiliBa Built on top of Zend Framework

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    donc dans index.php
    la class languageSite sert a definir la page a inclure en fonction de la langue de l'utilisateur
    elle contien tout les textes qui sont stocké dans des variables :
    $text1="texte_en_francais"; // page francaise
    $text1="text_in_english"; //page anglaise


    include("./class/class_languageSite.php");
    $obj_language = new languageSite();
    include (".".$obj_language->chooseLanguage());


    .....


    switch ($_GET['id'])
    {
    case list_mb:
    include("./class/class_membres.php");
    $obj_membres = new membres();
    $obj_membres->list_members();
    break;
    ...
    } // fin switch


    ensuite la fonction list_members() m'affiche la liste des membres. cette fonction contien du texte que j'affiche selon la langue.
    donc je fait simplement echo $text1;

    cela devrai m'afficher mon texte mais rien ne s'affiche

    je suis assez clair ?

  8. #8
    Membre régulier
    Avatar de titoon
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 86
    Points
    86
    Par défaut
    Et avec global ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $cnxSql = new CnxSql();
     
    class Truc {
      function machin() {
        global $cnxSql;
     
        [...]
      }
    }

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    un super merci à toi ca marche parfaitement avec ce mot clé
    j'en avait jamais entendu parlé

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    par contre ca m'oblige a mettre

    global $obj_language;
    include (".".$obj_language->chooseLanguage());

    dans chaque fonction
    pas très pratique mais ca marche

  11. #11
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    une facon plus propre serait de faire un singleton de ta classe CnxSql
    Et ensuite de recuperer la meme instance dans chaque methode.
    If it's not broken, don't fix it.
    BiliBa Built on top of Zend Framework

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

Discussions similaires

  1. [POO] Passage d'objet en paramètre
    Par tintin72 dans le forum Langage
    Réponses: 6
    Dernier message: 13/08/2008, 20h06
  2. [POO] Passage d'objet par référence
    Par PinGu- dans le forum Langage
    Réponses: 2
    Dernier message: 10/03/2008, 10h23
  3. [POO] Passage d’objet en références
    Par remyli dans le forum Langage
    Réponses: 2
    Dernier message: 17/01/2006, 12h19
  4. [POO] Passage d'objet dans un formaulaire
    Par jiluc dans le forum Langage
    Réponses: 4
    Dernier message: 16/12/2005, 16h07
  5. [POO] passage nom objet dsn les parametres d'une fonction
    Par melou dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 21/10/2005, 17h26

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