2010-09-29 77 views
0

我有這樣的代碼:PHP stdClass的變量屬性

foreach($attributes as $attrib => $options){ 
    if($bb->$attrib != $default->$attrib){ 
     $delete = false; 
    } 
} 

$ BB是一個stdClass的,即時閱讀並以這種方式寫這些屬性,因爲我讓他們存儲在數組中。現在這個工作在PHP 5.3中,我已經證實了,我確定它也可以在5.2上工作,但在5.1上,似乎有一個問題,你不能以這種方式寫入對象,沒有任何錯誤或任何東西,它只是不會寫...

由於它的工作原理是什麼?

+5

代碼示例中沒有內容寫入對象。這是所有閱讀和比較... – 2010-09-29 21:46:17

回答

0

我相信他指的是使用variable variables,對於PHP < = 5.1嘗試在變量變量周圍使用{}。在PHP 5.2以上版本中,iirc是在有些事情發生變化時允許它沒有這些內容。也可能在5.2.x之前這是不允許的,並且它沒有被賦予錯誤的原因可能是錯誤處理不是一直設置的,或者僅限於E_ERROR。

foreach($attributes as $attrib => $options){ 
    if($bb->{$attrib} != $default->{$attrib}){ 
     $delete = false; 
    } 
}