[POO] Accéder à une variable externe à une classe depuis celle ci
:salut:
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:
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" /> ');
$this->list[] = array('smiley' => ':blink:', 'text' => '<img src="smileypack/blink.gif" alt="blink" /> ');
$this->list[] = array('smiley' => ':blush:', 'text' =>'<img src="smileypack/blush.gif" alt="blush" /> ');
$this->list[] = array('smiley' => ':confused:', 'text' => '<img src="smileypack/confused.gif" alt="confused" /> ');
$this->list[] = array('smiley' => ':cry2:', 'text' => '<img src="smileypack/cry2.gif" alt="cry2" /> ');
$this->list[] = array('smiley' => ':huh:', 'text' => '<img src="smileypack/huh.gif" alt="huh" /> ');
$this->list[] = array('smiley' => ':dry:', 'text' => '<img src="smileypack/dry.gif" alt="dry" /> ');
$this->list[] = array('smiley' => ':coolio:', 'text' => '<img src="smileypack/coolio.gif" alt="coolio" /> ');
$this->list[] = array('smiley' => ':hands:', 'text' => '<img src="smileypack/hands.gif" alt="hands" /> ');
$this->list[] = array('smiley' => ':laugh:', 'text' => '<img src="smileypack/laugh.gif" alt="laugh" /> ');
$this->list[] = array('smiley' => ':sad:', 'text' => '<img src="smileypack/sad.gif" alt="sad" /> ');
$this->list[] = array('smiley' => ':wink:', 'text' => '<img src="smileypack/wink.gif" alt="wink" /> ');
$this->list[] = array('smiley' => ':wub:', 'text' => '<img src="smileypack/wub.gif" alt="wub" /> ');
$this->list[] = array('smiley' => ':shutup:', 'text' => '<img src="smileypack/shutup.gif" alt="shutup" /> '); |
ensuite je créé ma classe message
Code:
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 ?