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] Classes imbriquées en PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de Amnesiak
    Profil pro
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Par défaut [POO] Classes imbriquées en PHP
    Bonjour,

    Ayant eu l'habitude de pouvoir le faire en C++ (ainsi qu'en Java je pense), j'aimerais savoir s'il est possible de déclarer des classes imbriquées ("nested class"). Par 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
     
    class Voiture
    {
        private $_moteur = null;
     
        class Moteur
        {
            const DIESEL = 1;
     
            public function __construct($moteurType) {
            }
        }
     
     
        public function __construct() {
            $this->_moteur = new Moteur(Moteur::DIESEL);
        }
    }
    Est-ce possible ? Si non, on peut toujours s'en sortir et déclarer la classe Moteur au même niveau que Voiture, mais j'aimerais pouvoir utiliser des constantes de classes de la manière suivante : (Fréquemment rencontré en DOT NET)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $moteurType = Voiture::Moteur::DIESEL;
    Comment puis-je reproduire cette "imbrication" ?

    D'avance, un grand merci !

    Puis-je

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Après quelques recherches (et surtout un test simple d'imbrication d'une classe dans une autre) ca ne semble pas faisable.
    J'ai trouvé quelques liens indiquant que l'idée des nested classes avait été abandonnée avant la sortie de PHP5.
    J'allais proposer l'idée des namespaces pour contourner le probleme mais en fait il n'y a pas non plus dans php5!

  3. #3
    Membre très actif Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 714
    Par défaut
    tu peux l'interfacer et l'inclure. ça devrait marcher

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 206
    Par défaut
    Peut être qu'avec une variable du même nom de classe et les classes en public static tu pourrai le faire, 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
     
    require_once 'include/class_Moteur.php'; //Inclus la classe au début
    //La classe Moteur :
    public static class Moteur
    { 
       public static $type;
       //Code
    }
     
    public static class Voiture
    {
       public static ( (Moteur) $Moteur);//Précast de classe autorisé en PHP5
       //Code                               
    }
     
    $moteurType =  Voiture::Moteur::type; //Marcherai peut être...

Discussions similaires

  1. [POO] Classes imbriquées entre elles
    Par Momodedf dans le forum Langage
    Réponses: 4
    Dernier message: 12/07/2008, 20h27
  2. Réponses: 3
    Dernier message: 29/04/2008, 14h14
  3. [POO] class php de gestion de stats
    Par cedsib dans le forum Langage
    Réponses: 5
    Dernier message: 18/05/2006, 12h43
  4. Réponses: 18
    Dernier message: 08/04/2006, 10h39
  5. [POO] Classe PHP super simple Mais j'y arrive pas
    Par mulbek dans le forum Langage
    Réponses: 10
    Dernier message: 17/03/2006, 15h33

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