0

私は次のようなオブジェクトを持っています$images

stdClass Object
(
    [0] => stdClass Object
        (
            [id] => 125
            [title] => 131301
            [file_name] => 131301
            [file_ext] => jpg
            [dir] => Adventure/
            [fk_gallery_id] => 1
        )

    [1] => stdClass Object
        (
            [id] => 126
            [title] => 181301
            [file_name] => 181301
            [file_ext] => jpg
            [dir] => Adventure/
            [fk_gallery_id] => 1
        )
);

次に、オブジェクトの最初の要素を取得します。

$ obj = $images[0]。

これは私にエラーを与えます:

Fatal error: Cannot use object of type stdClass as array

なぜこれが機能しないのか誰か教えてもらえますか?

私も試しまし$images[0]->idたが、これも機能していません。

4

6 に答える 6

3

それらはクラスメンバーであるため、次のようにアクセスする必要があります。

$obj = $images->{0};

参照:変数変数

于 2012-04-16T12:40:21.263 に答える
1

$ imagesは配列ではなく、StdClass型のオブジェクトです(標準クラスは実際にはダミークラスです)。クラスメンバーにアクセスするには、次の形式を使用する必要があります

$object->membername

残念ながら、0は有効なメンバー名ではありません。したがって、$images->0を使用することはできません。回避策は、フォーマットを使用することです

$images->{"0"}

以下も機能します(PHPのバージョンによって異なります)

$a = 0;
$images->$a;
于 2012-04-16T12:46:52.813 に答える
0

試す

$obj = $images["0"];

また

$key = 0;
$obj = $images[ $key ];
于 2012-04-16T12:40:16.473 に答える
0

これを試して:

$a = $image->0;
$id = $a->id
于 2012-04-16T12:42:11.790 に答える
0

画像もオブジェクトであり、画像の内部もオブジェクトであるため、これを使用します

$images->{0}->id;
于 2012-04-16T12:43:30.297 に答える
0

$ image->0->idを試してくださいこれはあなたのコードでうまくいくかもしれません

于 2014-04-19T12:43:12.980 に答える