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

尝试 $image->0->id 这可能适用于您的代码

于 2014-04-19T12:43:12.980 回答
0

尝试

$obj = $images["0"];

或者

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

使用它,因为图像也是一个对象,内部也是对象

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

尝试这个:

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