从空值创建默认对象:PHP 5.4

我收到一个错误,如第196行的空值创建默认对象($ settings - > {$ v-> Name} = $ setting;)。 我想,这是因为我已经升级到5.4版本的PHP。 所以我已经设置了$ setting =(object)null而不是$ setting = null。 但是我无法在第196行修正它($ settings - > {$ v-> Name} = $ setting;)。

$settings;

 foreach($SettingsRows as $v)
      {
    $setting =(object) null;

    $setting->ID = $v->ID;
    $setting->Name = $v->Name;
    $setting->Value = $v->Value;
    $setting->Class = $v->ClassName;
    $setting->Form = new $setting->Class($setting);
    $settings->{$v->Name} = $setting;
}

如何将$设置值设置为$ settings - > {$ v-> Name}? 我需要在这里改变什么?

谢谢!


你的代码看起来很粗略,但显然你需要在foreach循环之前使用$settings = new stdClass 。 ( new stdClass(object) null是一样的东西,但在我看来更清晰。)

它真的看起来像$settings应该只是一个数组(例如, $settings[$v->Name] = $setting; ),但我不知道你在做什么。


用PHP 5.4为我工作

$query1 = $this->db()->prepare('SELECT id,title FROM category');
    $query1->execute();

    $d['query1']=(object) null;

    foreach($query1->fetchAll(PDO::FETCH_OBJ) as $k=>$v){

            $d['query1']->$k=$v;

            $query2 = $this->db()->prepare('SELECT id,title FROM page');

            $query2->execute();

            $d['query2']=(object) null;
            foreach($query2->fetchAll(PDO::FETCH_OBJ) as $k=>$v){

                $d['query2']->$k=$v;

            }
    }
    return $d;
链接地址: http://www.djcxy.com/p/59389.html

上一篇: Creating default object from empty value:PHP 5.4

下一篇: How to define Constant values