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 : 46

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

    tu peux faire

  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 : 46

    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?

  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 : 46

    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.

+ 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