2011-07-20 164 views
5

我有這個簡單的問題。在這個簡單的腳本:遍歷對象的屬性並修改原始對象

<?php 

class MyClass { 
    public var1 = '1'; 
    public var2 = ''; 
    public var3 = '3'; 
} 

$class = new MyClass; 

foreach ($class as $key => $value) { 
    echo $key . ' => ' . $value . '<br />'; 
} 

?> 

其結果將是:

VAR1 => 1

VAR2 =>

VAR3 => 3

如果我要遍歷所有這些屬性,以便我可以找出哪一個是空的,我怎樣才能爲對象中的空屬性賦值?

foreach ($class as $key => $value) { 
    if (empty($value)) { 
     $value = 'something'; 
    } 
} 

...是不是工作,因爲我想,PHP認爲$value是一個實際的變量,而不是一個參考。

回答

16

試試這個:

foreach ($class as $key => $value) { 
    if (empty($value)) { 
     $value = 'something'; 
     $class->$key = $value; 
    } 
} 
+0

簡單,優雅,有效。我不知道我從來沒有想過如果這個!萬分感謝。 – AeroCross