0

我收到一个错误,例如在第 196 行从空值创建默认对象($settings->{$v->Name} = $setting; )。我想,这是因为我已经将 php 升级到了 5.4 版本。所以我设置了 $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;
}

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

谢谢!

4

2 回答 2

1

您的代码看起来很粗略,但显然您需要$settings = new stdClassforeach循环之前。(new stdClass与 相同(object) null,但在我看来更清楚。)

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

于 2012-07-12T06:10:38.757 回答
0

使用 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;
于 2013-11-14T21:27:23.330 回答