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 :

[POO] Accéder à une variable externe à une classe depuis celle ci


Sujet :

Langage PHP

  1. #1
    Membre averti

    Inscrit en
    Octobre 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 363
    Points : 417
    Points
    417
    Par défaut [POO] Accéder à une variable externe à une classe depuis celle ci


    J'ai un petit soucis,

    pour mon BTS j'ai fais une activité, un tag board (ou shoutbox) en php avec une classe message dedans.

    je créé un tableau $smileys
    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
    private $list = array();
    $this->list[] = array('smiley' => ':)', 'text' => '<img src="smileypack/biggrin.gif" alt="smile" />&nbsp;');
    $this->list[] = array('smiley' => ':blink:', 'text' => '<img src="smileypack/blink.gif" alt="blink" />&nbsp;');
    $this->list[] = array('smiley' => ':blush:', 'text' =>'<img src="smileypack/blush.gif" alt="blush" />&nbsp;');
    $this->list[] = array('smiley' => ':confused:', 'text' => '<img src="smileypack/confused.gif" alt="confused" />&nbsp;');
    $this->list[] = array('smiley' => ':cry2:', 'text' => '<img src="smileypack/cry2.gif" alt="cry2" />&nbsp;');
    $this->list[] = array('smiley' => ':huh:', 'text' => '<img src="smileypack/huh.gif" alt="huh" />&nbsp;');
    $this->list[] = array('smiley' => ':dry:', 'text' => '<img src="smileypack/dry.gif" alt="dry" />&nbsp;');
    $this->list[] = array('smiley' => ':coolio:', 'text' => '<img src="smileypack/coolio.gif" alt="coolio" />&nbsp;');
    $this->list[] = array('smiley' => ':hands:', 'text' => '<img src="smileypack/hands.gif" alt="hands" />&nbsp;');
    $this->list[] = array('smiley' => ':laugh:', 'text' => '<img src="smileypack/laugh.gif" alt="laugh" />&nbsp;');
    $this->list[] = array('smiley' => ':sad:', 'text' => '<img src="smileypack/sad.gif" alt="sad" />&nbsp;');
    $this->list[] = array('smiley' => ':wink:', 'text' => '<img src="smileypack/wink.gif" alt="wink" />&nbsp;');
    $this->list[] = array('smiley' => ':wub:', 'text' => '<img src="smileypack/wub.gif" alt="wub" />&nbsp;');
    $this->list[] = array('smiley' => ':shutup:', 'text' => '<img src="smileypack/shutup.gif" alt="shutup" />&nbsp;');
    ensuite je créé ma classe message

    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
    class Message{
       private $id;
       private $username;
       private $date;
       private $content;
     
       public function Message(){
       }
     
       public function setUsername($name){
          $this->username = $name;
       }
     
       public function getUsername(){
          return $this->username;
       }
     
       public function setDate($date){
          $this->date =  substr($date,8,2).'/'.substr($date,5,2).'/'.substr($date,2,2);
       }
     
       public function getDate(){
          return $this->date;
       }
     
       public function setContent($text){
          $this->content = $text;
       }
     
       public function getContent(){
          return $this->content;
       }
     
       public function save(){
          $sql = 'INSERT INTO shoutbox (username, date, content) values ("'.$this->username.'", CURDATE(), "'.addslashes($this->content).'")';
          mysql_query($sql);
       }
     
       public function smileyParser($text){
          $smileys = new Smileys();
          foreach( $smileys->getSmileys() as $smiley){
             $text = str_replace($smiley['smiley'], $smiley['text'], $text);
          }
          return $text;
       }
    }
    Tout ce ci est placé dans un init.php que j'include dans un index.php. Et, au moment ou je veux créer un foreach dans le smileyParser en passant mon tableau $smileys en paramètres ca pète. j'ai une erreur invalid argument for foreach.

    alors que si je créé une classe Smileys ou dedans je créé un tableau je peux accéder à ce tableau...

    Un peu dommage de devoir créé une classe pour ca :s

    Une idée ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 75
    Points : 62
    Points
    62
    Par défaut
    tu appelle la méthode getSmileys() dans ton foreach mais on ne la retrouve pas dans le code de ta classe

  3. #3
    Membre averti

    Inscrit en
    Octobre 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 363
    Points : 417
    Points
    417
    Par défaut
    elle est bien créée cette fonction. Le code de smileys est ici un tableau et l'appel dans ma classe fait référence au fonctinnement avec une classes smileys, hors j'aimerais m'en passer de cette classe smileys.

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Pardon de mon ignorance, mais ca se trouve où ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private $list = array()
    Dans une classe ?

Discussions similaires

  1. Utiliser une variable "externe" dans une condition xsl
    Par JulienNvr dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 06/01/2014, 15h45
  2. Réponses: 9
    Dernier message: 23/06/2009, 10h54
  3. Réponses: 1
    Dernier message: 20/04/2007, 09h12
  4. Réponses: 7
    Dernier message: 24/01/2007, 10h01
  5. récupérer une variable javascript dans une variable java
    Par tx dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/07/2006, 17h55

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