2014-09-19 40 views
0

我有100個公共成員的類。我如何以自動方式更新它們,即不指定它們的名稱。我已經嘗試了這一點,我得到的變量,但所做的更改不反映在實際的對象。請指教。使用get_object_vars()更新類的所有公共變量的值

class foo { 
    public $b = 1; 
    public $c = 2; 


    function __construct() 
    { 
     $x = get_object_vars($this); 
     foreach ($x as $obj) { 
       $obj = 9; 
     } 
    } 
} 

$test = new foo; 

echo $test->c; 

它打印 'C' 的谷爲2,而不是9

+0

爲什麼你需要在你的類100個成員?爲什麼你需要一次更新所有的人?也許它應該是一個數組? – Barmar 2014-09-19 04:00:47

+0

其實這100個變量已經是數組了。爲了簡單起見,我改變了他們的問題。我需要動態地替換它們中的一些數據。 – Harikrishnan 2014-09-19 04:03:19

+0

然後只需遍歷數組,更新元素。 – Barmar 2014-09-19 04:04:19

回答

1
function __construct() 
{ 
    $x = get_object_vars($this); 
    foreach ($x as $key => $value) { 
     $this->$key = 9; 
    } 
} 
+0

工作..謝謝 – Harikrishnan 2014-09-19 09:03:48