我有一个对象(存储为$VIDEO)如下所示

object(stdClass)#19 (3) {
  [0]=>
  object(stdClass)#20 (22) {
    ["id"]=>
    string(1) "123"

  etc...

我只想获得第一个元素的ID,而不必遍历它.

如果它是一个数组,我会这样做:

$videos[0]['id']

它过去的工作方式是这样的:

$videos[0]->id

但现在我得到一个错误"不能使用stdClass类型的对象作为数组…"在上面显示的线路上.可能是因为PHP升级.

那么,我怎样才能在不循环的情况下获得第一个ID呢?可能吗?

谢谢!

推荐答案

Update PHP 7.4

自PHP 7.4起,不建议使用大括号访问语法

Update 2019

继续讨论OOPS的最佳实践,@MrTrick的答案必须是

只需使用{}迭代它

例子:

$videos{0}->id

这样你的对象就不会被破坏,你可以很容易地遍历对象.

对于PHP 5.6和更低版本,请使用此

$videos{0}['id']

Php相关问答推荐

删除字符串之间的字符串并替换为文本加计数器

如何将两个 foreach 循环替换为一个赋值(mb 两个 array_map 函数)?

计算数组内的数组? PHP

WooCommerce CSS 帮助更改订单备注输入框的大小

make:entity symfony 命令在教义Helper.php 中给出错误

仅在第一个轮播单元格上添加课程(轻弹)

如何为一个输入添加两个唯一验证

在Laravel代码中定义数据库中字段的值,以使代码更具可读性

laravel Passport 身份验证代码 - 要求授予权限,是否需要?

如何在php中传递值

如何验证没有要验证的特定属性的发布请求

是什么导致我的 Laravel 8 应用程序中出现此查询生成器错误?

Laravel,sync() - 如何同步数组并传递额外的数据透视字段?

将 POSTMAN 请求转换为 Curl

如何在 Laravel 中手动返回或抛出验证错误/异常?

在 Laravel 中使用 https 加载 Blade 资源

如何去除 PHP 变量中的空格?

使 PhpStorm 停止自动关闭选项卡

PHP 7 接口,返回类型提示和self

清理用户密码