0

次のようなコードがあります。

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

$bb は stdClass です。これらの属性を配列に格納しているため、この方法でこれらの属性を読み書きします。これは私が確認したPHP 5.3で動作します。5.2でも動作すると確信していますが、5.1では、この方法でオブジェクトに書き込むことができないという問題があるようです。書きません…

どのバージョンから動作しますか?

4

1 に答える 1

0

PHP <= 5.1 の場合、変数variableの周りに {} を使用してみてください。PHP 5.2+ の iirc は、いくつかのことが変更され、それらがなくても使用できるようになったときです。また、5.2.x より前ではこれが許可されていなかった可能性があります。エラーが発生しない理由は、エラー処理が完全にセットアップされていないか、E_ERROR だけに制限されている可能性があります。

foreach($attributes as $attrib => $options){
     if($bb->{$attrib} != $default->{$attrib}){
        $delete = false;
    }
}
于 2010-09-30T00:19:50.847 に答える