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 :

Tableau et classe


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 225
    Points : 97
    Points
    97
    Par défaut Tableau et classe
    bonjour,

    si dans une classe j'ai une variable public static $profil
    qui servira a stocker une variable de session,

    comment puis recuper les valeurs stockees dans $profil ?

    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
     
    class uneClasse{
    ...
    public static $profil
    ...
       public  function __construct(){
    		if (isset($_SESSION['profil']))
    			self::$profil =& $_SESSION['profil'];
    				else
    					self::$profil = null;
       }	
     
    ...
    	public function getAttr ($attrName){
    		return $this->$attrname;
    		}
    ...
     
    si je veux recuperer une valeur level stockee dans $profil
     
    comment faire l'affectation ?:
    $user_level = self::$profil['type'];
     
    }

    merci !
    n

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 225
    Points : 97
    Points
    97
    Par défaut
    pas moyen d'afficher les valeurs, j'ai tout essayé !

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <?php
     
    class user{
    	private $nom;
    	private $prenom;
     
    	function __construct($nom, $prenom){
    		$this->nom = $nom;
    		$this->prenom = $prenom;
    		}
    	function getAttr($attrName){
    		return $this->$attrName;
    	}
     
    }
     
     
    class UneClasse{
     
    	public static $profil;
     
    	function __construct(){
    		if (isset($_SESSION['user']))
    			$profil = $_SESSION['user'];
    			else $profil = null;
    		}
     
     
    	function getAttr2($attrName){
    		return $this->$attrName;
    		}
    	function afficher(){
    		print_r( $profil);
    		}
    }
     
    if (!isset($_SESSION['user'])){
    		session_start();	
    		$oUser = new user("toto","tota");
    		$_SESSION['user'] = $oUser;
    		echo $_SESSION['user']->getAttr('nom');
    	}
     
    $o = new UneClasse();
    $o->afficher();
    ?>
    afficher : n'affiche rien avec print_r( $profil);

    afficher : Fatal error: Call to a member function getAttr2() on a non-object in C:\wamp\www\TD5\test.php on line 33 avec echo $profil->getAttr2('nom');

    afficher : n'affiche rien avec echo $profil['nom'];

    une idee ???
    merci d'avance
    n

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 225
    Points : 97
    Points
    97
    Par défaut
    ca y'est!!!!

    l'erreur se trouve dsan l'affectation suivante :
    $profil = $_SESSION['user'];

    2 erreurs en fait,
    $_SESSION['user'] contient un objet dont il faut le faire passer par refere,ce &
    ensuite $profil est une variable static dont on l'afecte via self::

    la bonne syntaxe est :
    self::$profil = & $_SESSION['user'];

    ensuite pour affciher :
    echo self::$profil->getAttr('nom');

    si ca peut aider ! ..j'y ai passer l'aprem

    a+
    n

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

Discussions similaires

  1. accesseur tableau de class A dans une class B
    Par dropsoil dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/05/2009, 21h06
  2. [POO] Tableau et classe
    Par altair8080 dans le forum Langage
    Réponses: 4
    Dernier message: 14/12/2006, 16h32
  3. Réponses: 5
    Dernier message: 11/05/2006, 14h15
  4. Suppression d'un tableau de classe de la memoire
    Par jhary07 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 14/11/2005, 08h23
  5. tabeau de classe = tableau de classe
    Par Bason_sensei dans le forum C++
    Réponses: 25
    Dernier message: 12/10/2005, 13h01

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