PHP 调用对象之间的区别?与?->

问题描述 投票:0回答:1
  1. 这些操作有什么区别

$object->items->menu[0]->id ?? null;

$object?->items?->menu[0]?->id ?: null;

  1. 你能解释一下为什么以及何时需要使用'?->'运算符吗

尝试

  1. $object->items->menu[0]->id ?? null;
    如预期为空
  2. $object?->items?->menu[0]?->id ?: null;
    解析错误:语法错误,意外的“->”(T_OBJECT_OPERATOR)
php conditional-statements
1个回答
0
投票

在第一个选项中,如果 ?? 之前的整个链,代码将返回 null为空。

如果整个链有效且不为空,第二个选项将是 id。如果链的任何部分为 null,它将返回 null,不会出现任何错误。

© www.soinside.com 2019 - 2024. All rights reserved.