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 :

Comportement de la fonction get_class_vars


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Comportement de la fonction get_class_vars
    Bonjour,

    J'ai un souci avec la fonction "get_class_vars".

    Voici un code exécutable, très simple :

    Code php : 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
     
    <?php
     
    class Mere {
    	private $propMere;
     
    	public function verif() {
    		$nomClass = get_class($this);
     
    		var_dump($nomClass);
    		echo '<br/><br/>';
    		var_dump(get_class_vars($nomClass));
    	}
    }
     
    class Fille extends Mere {
    	protected $propFille;
    }
     
    $test = new Fille();
    $test->verif();
     
    ?>

    Voici le résultat sur notre serveur de développement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string(5) "Fille"
     
    array(1) { ["propFille"]=> NULL }
    Voici le résultat sur notre serveur de production :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string(5) "Fille"
     
    array(0) { }

    Le serveur de développement a la version 5.2.12 de PHP (avec Apache 2.2)
    Le serveur de production a la version 5.2.6 de PHP (avec Apache 2.2)

    J'ai donc cherché pourquoi le résultat était différent.
    J'ai trouvé un bug signalé sur php.net concernant les mêmes symptômes que mon problème, qui a été corrigé dans la version 5.2.7 de PHP.
    Je met donc à jour le serveur de production, qui a maintenant la version 5.2.12 de PHP. Je le reboote.

    En pensant que ça allait être réglé, j'ai eu la désagréable surprise de voir que le résultat de l'exécution est identique.
    C'est toujours 2 résultats différents pour le même script sur une même version de PHP.

    Il y a toujours une explication, mais là j'avoue être en manque d'idée, après une nouvelle journée de recherche.

    Je remercie donc d'avance quiquonque pourrait m'éclairer sur ce souci !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 336
    Points : 341
    Points
    341
    Par défaut
    Bonjour,

    sur mon serveur PHP 5.2.11, j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string(5) "Fille" 
     
    array(1) { ["propFille"]=> NULL }
    La fonction get_class_vars a des comportements différents suivant le contexte (cf exemple #2 à l'URL http://php.net/manual/fr/function.get-class-vars.php).

    Sur le serveur de prod, c'est comme si le contexte n'autorisait plus l'accès aux variables protected / private pour get_class_vars.

    Essaye peut-être d'exécuter l'exemple #2 de http://php.net/manual/fr/function.get-class-vars.php à la fois sur ton serveur de dév et celui de prod.

    Karl3i.

  3. #3
    Membre à l'essai
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Merci karl3i pour ton aide

    En fait, j'ai compris d'où venait le problème (enfin je pense ^^).

    J'ai dit que j'avais mis à jour PHP. Or, par curiosité, j'ai fait un phpinfo() sur serveur de dév et prod. Sur le dév, pas de souci, c'est du 5.2.12.

    Par contre, sur le prod, c'est marqué 5.2.1, alors que sur la console Apache, il met "PHP 5.2.12"

    Et je suis persuadé que la MAJ s'est faite sans erreur apparente !

    Bizarre...

    J'essayerais de désinstaller PHP et le réinstaller cette nuit, je mettrais le sujet en résolu si c'est ok !

    Merci encore pour ton message

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

Discussions similaires

  1. Comportement de la fonction Replace
    Par syntax_error dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 05/11/2010, 17h19
  2. comportement de la fonction mailto
    Par laurentSc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 19/01/2010, 08h19
  3. comportement de ma fonction
    Par Setsuna_00 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/07/2009, 12h26
  4. Comportement de la fonction MINUS
    Par Philomelo dans le forum Langage SQL
    Réponses: 9
    Dernier message: 28/05/2009, 23h40
  5. comportement de la fonction strtok()
    Par Arronax dans le forum C++
    Réponses: 3
    Dernier message: 15/04/2008, 15h03

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