2012-07-12 95 views
0

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

$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}? 我需要在这里改变什么?

谢谢!

回答

1

你的代码看起来粗略,但显然你需要在foreach循环之前的$settings = new stdClass。 (new stdClass是同样的事情(object) null,但在我看来更加清晰。)

它真的看起来像$settings应该仅仅是一个阵列(例如,$settings[$v->Name] = $setting;),但我不知道你正在尝试做的。我

+0

感谢您的答复。我在foreach循环之前设置了$ settings = new stdClass。 – Zendie 2012-07-12 06:22:15

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;