0

私は PHP 宣言の初心者で、ArrayObject 内に配列を含める方法がわかりません。次のコードは機能しています (エコーは問題ありません) が、「警告: 行 11 で空の値からデフォルト オブジェクトを作成しています」および「警告: 空の値からデフォルト オブジェクトを作成している」ため、「SCREAM: エラー抑制は無視されました」というメッセージが表示されます。 ... 13 行目"

そうです :

$model = new stdClass();
$model->name = new stdClass();
$model->image = new ArrayObject();
$model->image->url = new stdClass();
$model->image->copyright = new stdClass();
$model->image->total = new stdClass();

$model->name = "France";
echo "Name : ".$model->name."<hr/>";
$model->image[0]->url = "/model1.jpg";
$model->image[0]->copyright = "Bellami";
$model->image[1]->url = "/model2.jpg";
$model->image[1]->copyright = "Bellami";
$model->image->total=2;

echo "Image 1 : ".$model->image[0]->copyright." - ".$model->image[0]->url."<hr/>";
echo "Image 2 : ".$model->image[1]->copyright." - ".$model->image[1]->url."<hr/>";

私の場合、どのように宣言する必要がありますか?

4

3 に答える 3

0

これは私にとってはうまくいきますが、より良いアプローチがあると思います:

$model = new stdClass();
$model->name = new stdClass();
$model->image = new ArrayObject();
$model->image->offsetSet( 0, new ArrayObject());
$model->image->offsetSet( 1, new ArrayObject());

$model->name = "France";
echo "Name : ".$model->name."<hr/>";
$model->image[0]->offsetSet( 'url', "/model1.jpg");
$model->image[0]->offsetSet( 'copyright', "Bellami");
$model->image[1]->offsetSet( 'url', "/model2.jpg");
$model->image[1]->offsetSet( 'copyright', "Bellami");
$model->image->total=2;

echo "Image 1 : ".$model->image[0]->offsetGet('copyright')." - ".$model->image[0]->offsetGet('url')."<hr/>";
echo "Image 2 : ".$model->image[1]->offsetGet('copyright')." - ".$model->image[1]->offsetGet('url')."<hr/>";
于 2012-06-26T20:20:39.880 に答える
0

$model->image[0]作成されることはありませんが、オブジェクトのように話されます。これは機能します:

$model->image[0] = new ArrayObject();
$model->image[0]->url = "/model1.jpg";
$model->image[0]->copyright = "Bellami";
$model->image[1] = new ArrayObject();
$model->image[1]->url = "/model2.jpg";
$model->image[1]->copyright = "Bellami";
于 2012-06-26T20:33:57.187 に答える
0

暗黙的に定義されたオブジェクトを宣言する必要があるのはなぜですか...これだけで必要なものが得られますか?

$model->image[0]->url = "/model1.jpg"; 
$model->image[0]->copyright = "Bellami"; 
$model->image[1]->url = "/model2.jpg"; 
$model->image[1]->copyright = "Bellami"; 

var_dump($model);
于 2012-06-26T20:24:24.777 に答える