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 :

php ob classes


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 117
    Points : 47
    Points
    47
    Par défaut php ob classes
    Salut tout le monde,

    Je suis débutant en php orienté objet et je veux savoir : est-il possible d’appeler ou bien d'instancier une classe dans le corps d'une autre classe ?

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class premier{
     
     $obj = new classDeuzieme();
    }
    Est-il obligatoire d’écrire require'madeuziemeClass.php'dans ma première classe ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Oui c'est possible (heureusement).
    Et pour pouvoir instancier une classe, il faut au préalable que son code source soit importé (une fois seulement) ou qu'il y ait un mécanisme d'autoloading de déclaré.

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 117
    Points : 47
    Points
    47
    Par défaut
    merci rawsrc pour la reponse mais je comprend pas pourquoi ca va pas avec mon test voila mon code (fichier test222.php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    class premiere
    {
    public $_expo = 50;
    public function afficherExpo($var)
    {
     	$_expo = $var;
    	echo $_expo;
    }
    }
    ?>
    l'autre class
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    require_once('test222.php');
    class testo{
    		private $a = 1;
    		public function getValeur(){
     
    			$obj = new premiere();
     
    			$obj->afficherExpo($a);
    		}
    }
    $objet2 = new testo();
    $objet2->getValeur();
    ?>
    resultat rien a l'ecran.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonsoir,

    il te manque les constructeurs de tes classe :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    class premiere{
     
    		private $expo;
     
    		public function __construct(){
    			$this->expo = 0;
     
    		}
     
    		public function afficherExpo($var){
     			$this->expo = $var;
    			echo $this->expo;
    		}
    	}
     
    	class testo{
    		private $a;
     
    		public function __construct(){
    			$this->a = 10;
    		}
     
    		public function getValeur(){
    			$obj = new premiere();
    			$obj->afficherExpo($this->a);
    		}
    	}
     
    	$objet2 = new testo();
     
    	$objet2->getValeur();
    plusieurs choses, les attributs d'une classe doivent être déclarés en private ou protected ce qui aura pour effet de ne pas pouvoir y accéder directement par l'objet que tu aura instancié (ex : $monObjet->monAttribut = 10;) sans définir de méthode d'accesseur (méthode get et set + nom de l'attribut généralement),

    tu doit définir un constructeur dans chacune de tes classe qui aura pour rôle à l'instanciation de tes objets de définir une valeur par défaut(elle peut être 0 ou vide mais aussi des valeur reçu en paramètre à l'instanciation de ton objet ) ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public function __construct(){
        $this->monAttribut = 0;
    }
    //ou
    public function __construct($var){
        $this->monAttribut = $var;
    }
    //et à l'instanciation de mon objet
    $objet = new maClasse(10);
    //l'attribut de ma classe aura comme valeur 10 à l'instanciation
    je te conseil de revoir le principe de la POO avec les différents tuto disponible ici.

    EDIT : Quelque chose de plus :
    pour pouvoir manipuler les différentes variables déclaré à l'intérieur de tes classes tu doit utiliser $this->nomVariable comme fait dans l'exemple donné au dessu.

Discussions similaires

  1. [PHP 5] Classe utilitaire pour manipuler des images
    Par siddh dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 0
    Dernier message: 15/02/2011, 20h24
  2. PHP (5) Classe Problème
    Par LeLorrain dans le forum Langage
    Réponses: 2
    Dernier message: 10/10/2008, 08h51
  3. [PHP-JS] Classe statique en PHP4
    Par Neuromancien2 dans le forum Langage
    Réponses: 1
    Dernier message: 04/05/2007, 12h22
  4. [PHP-JS] Classe de contrôle de formulaire
    Par MV1908 dans le forum Langage
    Réponses: 4
    Dernier message: 10/10/2006, 01h01
  5. [POO] [PHP 5 CLASSES]Source à part?
    Par Jean_Benoit dans le forum Langage
    Réponses: 3
    Dernier message: 20/10/2005, 12h50

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