2012-10-10 29 views
0
<?php 
class MaClasse 
{ 
    private $attributs = array(); 
    private $unAttributPrive; 

    public function __get ($nom) 
    { 
     if (isset ($this->attributs[$nom])) 
      return $this->attributs[$nom]; 
    } 

    public function __set ($nom, $valeur) 
    { 
     $this->attributs[$nom] = $valeur; 
    } 

    public function afficherAttributs() 
    { 
     echo '<pre>', print_r ($this->attributs, true), '</pre>'; 
    } 
} 

$obj = new MaClasse; 

$obj->attribut = 'Simple test'; 
$obj->unAttributPrive = 'Autre simple test'; 

echo $obj->attribut; 
echo $obj->autreAtribut; 
$obj->afficherAttributs(); 
?> 

我不明白,爲什麼第二個變量沒有顯示任何東西? 但在數組中它確實存在。超載及陣列

+0

你們是不是要設置一個私有變量? –

+0

您正在設置'unAttributPrive'並回顯'autreAtribut'。試試'echo $ obj-> unAttributPrive;'。 – air4x

+0

對不起傢伙!我以爲它是一樣的!感謝幫助我! – satyres

回答

2

你設置unAttributPrive,但得到autreAtribut

+0

我設置了兩個:$ obj-> attribut ='簡單測試'; $ obj-> unAttributPrive ='Autre simple test'; – satyres

+0

@satyres:正確的,但你'回聲$ obj-> autreAtribut;'而不是'回聲$ obj-> unAttributPrive;' – Josh

+0

是的,這是真的!對不起大家 !!我以爲它是一樣的!感謝幫助我! – satyres

0

我要出門一時興起和猜測,因爲你是拼寫錯誤的變量名。如果您正在尋找呼應obj- $> unAttributPrive

+0

這不是主要的問題:我不uderstand爲什麼第二個變量沒有顯示他的內容? – satyres

+0

因爲沒有要顯示的內容?我認爲Josh和我試圖說你沒有在第二個變量中存儲任何東西。 –

+0

對不起傢伙!我以爲它是一樣的! – satyres