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 :

Declaration de classe PHP5


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 44
    Par défaut Declaration de classe PHP5
    Bonjour,

    Avant de poser ma question je vous montre ces deux bouts de code ayant le meme resultat (fonctionnent tous les deux bien, pas d'erreur) en local.

    Premiere code:

    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
    <?php
     class Voiture{
     	var $couleur;
     	function Voiture(){
     		$this->couleur = 'rouge';
     		}
     	function changer_couleur($nv_couleur){
     		$this->couleur = $nv_couleur;
     		echo '<br />la couleur de votre voiture est maintenant: ',$this->couleur; 		
     		}
     }
     
     $mercedes = new Voiture();
     echo 'le couleur de votre voiture est: ',$mercedes->couleur;
     $mercedes->changer_couleur('blanche');
    ?>
    deuxieme code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     class Voiture{
     	var $couleur='rouge';
     	function changer_couleur($nv_couleur){
     		$this->couleur = $nv_couleur;
     		echo '<br />la couleur de votre voiture est maintenant: ',$this->couleur; 		
     		}
     }
     
     $mercedes = new Voiture;
     echo 'le couleur de votre voiture est: ',$mercedes->couleur;
     $mercedes->changer_couleur('blanche');
    ?>


    Personnailement je me suis penché vers le deuxieme, pensant qu'il est plus simple surtout que toute les instance de ma classe auront au depart la meme couleur (je ne vois pas l'interet du constructeur). Mais je suis debutant et je peux bien me trompé, alors je me tourne vers vous pour confirmer ce que je pense ou bien le corriger, aussi pour savoir si mon code est optimal et respecte les standard sinon une proposition ou plutot une correction serait la bienvenue surtou avec des explications.


    Merci d'avance pour les gens qui essayeront de m'aider.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    c'est des classes PHP 4 ca
    en 5 c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class Voiture
    {
        private $_couleur = 'rouge';
     
        public function changer_couleur($nv_couleur)
        {
            $this->couleur = $nv_couleur;
        	echo '<br />la couleur de votre voiture est maintenant: ', $this->_couleur;	
        }
    }

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 44
    Par défaut
    Merci pour la réponse, je viens d'essayer votre suggestion mais le code ne fonctionne pas bien voici le code:
    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
    <?php
    class Voiture
    {
        private $_couleur = 'rouge';
     
        public function changer_couleur($nv_couleur)
        {
            $this->couleur = $nv_couleur;
        	echo '<br />la couleur de votre voiture est maintenant: ', $this->_couleur;	
        }
    }
     
     $mercedes = new Voiture;
     echo 'le couleur de votre voiture est: ',$mercedes->couleur;
     $mercedes->changer_couleur('verte');
    ?>
    et voici le résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    le couleur de votre voiture est:
    la couleur de votre voiture est maintenant: rouge

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    $_couleur est déclaré private donc tu ne dois pas avoir accès avec $mercedes->couleur.
    $mercedes = new Voiture;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mercedes = new Voiture();
    A+.

  5. #5
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     $mercedes = new Voiture();
     echo 'le couleur de votre voiture est: ',$mercedes->_couleur;
     $mercedes->changer_couleur('verte');

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    $_couleur est déclaré private donc tu ne dois pas avoir accès avec $mercedes->couleur.
    Citation Envoyé par syl2095 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'le couleur de votre voiture est: ',$mercedes->_couleur;

  7. #7
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 44
    Par défaut
    après cette modification:

    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
    class Voiture
    {
        private $_couleur = 'rouge';
        public function changer_couleur($nv_couleur)
        {
            $this->couleur = $nv_couleur;
        	echo '<br />la couleur de votre voiture est maintenant: ', $this->_couleur;	
        }
    }
     $mercedes = new Voiture();
     echo 'le couleur de votre voiture est: ',$mercedes->_couleur;
     $mercedes->changer_couleur('verte');
    ?>>
    J'obtient ceci:

    le couleur de votre voiture est:
    Fatal error: Cannot access private property Voiture::$_couleur in C:\xampp\htdocs\azerty\index.php on line 12

    PS: la ligne 12 correspond a celle ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo 'le couleur de votre voiture est: ',$mercedes->_couleur;

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    $_couleur est déclaré private donc tu ne dois pas avoir accès avec $mercedes->couleur.
    Et grunk a aussi proposé une correction.
    comme si tu n'as pas lu tous les post .

    A+.

  9. #9
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 44
    Par défaut
    En essayant la correction de grunk (un copier coller du code, j'évite de le réécrire pour éviter le flood) j'ai eu ce résultat:

    le couleur de votre voiture est: rouge
    la couleur de votre voiture est maintenant: rouge

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/06/2006, 10h49
  2. [POO] méthode de classe PHP5
    Par gregal dans le forum Langage
    Réponses: 7
    Dernier message: 26/04/2006, 11h38
  3. [POO] Déclaration de classe selon une variable
    Par Michaël dans le forum Langage
    Réponses: 1
    Dernier message: 07/01/2006, 18h33
  4. Declaré en classe de base, instancié en sous classe
    Par jobigoud dans le forum Langage
    Réponses: 3
    Dernier message: 14/11/2005, 10h55
  5. class php5 - Fatal error: main() [function.main]
    Par tom261285 dans le forum Langage
    Réponses: 3
    Dernier message: 21/01/2005, 14h41

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