2010-09-29 76 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; 
    } 
}