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 :

$classe -> fonction -> ca ?


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20
    Points : 15
    Points
    15
    Par défaut $classe -> fonction -> ca ?
    Bonjour,
    Je viens poser une question idiote, de bleu...

    Je vois souvent dans des scripts PHP l'usage de doubles fleches
    comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $template->body->header('titre', 'metas');
    Je sais tres bien utiliser des classes et des fonctions, mais en restant sur ce genre de syntaxe :

    Quelqu'un pourrait m'expliquer dans quel cas est utilisée la seconde flèche ?

    Merci

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Quand la propriété d'un objet est elle-même un objet.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    class Foo
    {
      public $foofoo;
     
      public function __construct( $o )
      {
        $this->foofoo = $o;
      }
    }
     
    class Bar
    {
      public $barbar;
     
      public function __construct()
      {
        $this->barbar = 'coucou';
      }
    }
     
    $foo = new Foo( new Bar );
    echo $foo->foofoo->barbar; // Affiche coucou

  3. #3
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut
    C'est pareil qu'une simple flèche, il s'agit d'un appel à un attribut ou à une méthode, mais ce de façon chaînée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class MyClass {
    public function example1() { 
       echo 'example1';
       return $this;
    }
    public function example2() { 
       echo 'example2';
       return $this;
    }
    }
    $oExample = new MyClass;
    $oExample->example1()->example2();
    //Affichage : example1example2
    Ton exemple est un peu particulier par contre : il s'agit juste d'un attribut dont la valeur est un objet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $template->body = new MyClass;
    $template->body->myAttribute = 'test';
    Zend PHP Certified Engineer, Certifié Symfony2
    blog : blog.lepine.pro
    Secrétaire de l'AFUP (Association des Utilisateurs de PHP)

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    C'était tout con en fait... merci Halleck.

    Bisûnûrs, cette fonction __construct() ... ça a l'air d'être une fonction propre à PHP.. non ? Si oui tu peux m'expliquer son utilité ?

  5. #5
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Salut !

    __construct() est le constructeur de classe en PHP, c'est-à-dire que cette méthode est appelé à chaque fois que tu crées l'objet auquel il est associé .

    Tu trouveras plus d'informations sur la documentation.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/06/2007, 08h57
  2. [classe ou fonction] fonction magic number ?
    Par Leinad dans le forum Langage
    Réponses: 13
    Dernier message: 28/07/2006, 17h58
  3. Classes ou fonctions ?
    Par alceste dans le forum C++
    Réponses: 6
    Dernier message: 27/06/2006, 12h44
  4. problème classe et fonction
    Par zmatz dans le forum C++
    Réponses: 14
    Dernier message: 19/10/2005, 21h46
  5. Classes - Sub/Fonction vs Property
    Par j_bolduc dans le forum ASP
    Réponses: 6
    Dernier message: 24/08/2005, 19h19

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