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 :

__GET & __SET


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de J_Lennon
    Inscrit en
    Mars 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2007
    Messages : 168
    Par défaut __GET & __SET
    Bonsoir,

    J'ai un petit soucis.

    |caracteristique.php|
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <body>
    <?php
        include 'Personne.php';
        $perso = new Personne();
        $perso->__set('nom','Mouse);
        $perso->__set('prenom', 'Mickey');
        $perso->__set('age', '90');
        
        echo 'NOM: ' . $perso->__get('nom') . ', PRENOM: ' . $perso->__get('prenom') . ', AGE: ' . jperso->__get('age');
    ?>
    </body>
    |Personnage.php|
    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
    <?php
        class Personne {
            private $nom;
            private $prenom;
            private $age;
     
            public function __get($property) {
                if('nom' === $property){
                    return $this->nom;
                } else if('prenom' === $property){
                    return $this->prenom;
                } else if('age' === $property){
                    return $this->age;
                } else {
                    throw new Exception('Propriété invalide!');
                }
            }
     
            public function __set($property,$value) {
                if('nom' === $property && ctype_alpha($value)){
                    $this->nom = $value;
                } else if('prenom' === $property && ctype_alpha($value)){
                    $this->prenom = $value;
                } else if('age' === $property && ctype_digit($value)){
                    $this->age = (int) $value;
                } else {
                    throw new Exception('Propriété ou valeur invalide!');
                }        
            }
        }
    ?>
    |Erreur renvoyée lors de l'exécution du script|
    Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /mnt/web4/51/19/51675519/htdocs/www/Bordeldetruc/TROC/Personne.php on line 3
    J'ai cherché une heure et je n'ai toujours aucune solution. Merci beaucoup pour l'aide que vous m'apporterez.

    Bonne fête.

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Je sais pas quelle version PHP tu utilises mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <body>
    <?php
        include 'Personne.php';
        $perso = new Personne();
        $perso->__set('nom','Mouse');
        $perso->__set('prenom', 'Mickey');
        $perso->__set('age', '90');
     
        echo 'NOM: ' . $perso->__get('nom') . ', PRENOM: ' . $perso->__get('prenom') . ', AGE: ' . $perso->__get('age');
    ?>
    </body>
    Ca fonctionne

  3. #3
    Membre très actif Avatar de J_Lennon
    Inscrit en
    Mars 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2007
    Messages : 168
    Par défaut
    Ah d'accord, je viens de comprendre le truc. En gros, j'ai toujours cru que la version installé par mon hébergeur était la 5.0 car c'est ce qu'il annonce. Or en vérifiant, je viens de me rendre compte que c'était plutot la 4.4.9.

    De la, ce script n'est plus compatible. Merci Kerod.

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Tu es où ?

  5. #5
    Membre très actif Avatar de J_Lennon
    Inscrit en
    Mars 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2007
    Messages : 168

  6. #6
    Membre très actif Avatar de J_Lennon
    Inscrit en
    Mars 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2007
    Messages : 168
    Par défaut
    en fait, php5 est bien installé. Il cohabite avec php4. Pour pouvoir jouir des fonctionnalité php5 il me suffit d'utiliser l'extension .php5; C'est bien charmant, mais pas vraiment utile! En effet, index.php5 n'est pas chargé par défaut! Et je ne peux pas faire de include('personnage.php5'); a partir de mon fichier index.php! Vraiment intéressant. Si quelqu'un à une solution, n'importe laquelle: Je suis preneur! ^^

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

Discussions similaires

  1. Fonction __set() et __get() en PHP objet
    Par ValooWart dans le forum Langage
    Réponses: 4
    Dernier message: 21/02/2013, 15h42
  2. [POO] magic function __set/__get
    Par WG614 dans le forum Langage
    Réponses: 6
    Dernier message: 18/08/2008, 17h50
  3. [POO] __Get / __Set et héritage
    Par kendras dans le forum Langage
    Réponses: 4
    Dernier message: 06/12/2007, 14h51

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