【发布时间】:2019-09-15 13:41:36
【问题描述】:
我将一个 Laravel 项目从一台服务器迁移到另一台服务器,一切正常,除了以下特定代码(以下只是示例代码):
$test_obj = [
(object) [
'name' => 'name1',
'value' => 'value1',
],
(object) [
'name' => 'name2',
'value' => 'value2',
],
];
$first = (object) $test_obj->{0};
echo $first->name;
独立 php 命令的错误消息:
- 试图在第 14 行获取非对象的属性
关于 Laravel 的错误信息:
- 未定义属性:stdClass::$0
奇怪的是,相同的用法在以前的服务器上运行良好(相同的 php 和 laravel 版本)。谁能给出可能的解释和解决方案?
【问题讨论】:
-
$test_obj是一个包含对象的数组,而不是对象本身。试试:$first = $test_obj[0];. -
或
$first = ((object)$test_obj)->{0};将适用于 PHP7.2+
标签: php