2010-09-29 2 views
0

У меня есть такой код:переменной PHP StdClass атрибуты

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

$ бб является StdClass, чтение им и пишут эти атрибуты к нему таким образом, потому что я их хранятся в массиве. Теперь это работает в PHP 5.3, который я подтвердил, я уверен, что он работает и с 5.2, но на 5.1, похоже, проблема, когда вы не можете писать объекту таким образом, никаких ошибок или чего-то еще, это просто не будет писать ...

С какой версией это работает?

+5

Ничто в вашем образце кода не записывает объект. все это читать и сравнивать ... –

ответ

0

Я считаю, что он ссылается на использование variable variables, для PHP < = 5.1 попробуйте использовать {} вокруг переменной. iirc в PHP 5.2+ - это когда некоторые вещи были изменены, чтобы позволить это без них. Также возможно, что до 5.2.x это не было разрешено, и причина в том, что ему не даны ошибки, возможно, обработка ошибок не настроена полностью или ограничена только E_ERROR.

foreach($attributes as $attrib => $options){ 
    if($bb->{$attrib} != $default->{$attrib}){ 
     $delete = false; 
    } 
} 
Смежные вопросы