0

行196($ settings-> {$ v-> Name} = $ settings;)の空の値からデフォルトオブジェクトを作成するようなエラーが発生します。phpを5.4バージョンにアップグレードしたからだと思います。そのため、$ settings=nullの代わりに$setting=(object)nullを設定しました。しかし、196行目で修正できませんでした($ settings-> {$ v-> Name} = $ settings;)。

$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 stdClassの前に必要です。foreach(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 に答える