PHP未定义的偏移量:带有isset的0

时间:2016-10-12 10:25:49

标签: php undefined offset isset

我试图理解在使用isset()函数时PHP是否正确抛出未定义的偏移量错误。 这些数据来自雄辩的收藏品。

$interest->vehicles

当集合为空时,会出现问题。 下面的代码在3种不同的设置上测试(Mac + Mamp PRO,Windows + Xampp,Mac + Mamp),在前两个设置中抛出一个未定义的偏移量但在我的第三个设置中没有(Mac + Mamp) 所有测试的场景都是使用PHP 7完成的,并显示错误On。

isset($interest->vehicles[0]['make'])

我理解为什么错误可能发生在其他设置上,因为我尝试isset的偏移量不存在,但我不明白的是为什么我在使用isset时没有看到我的设置错误

我还尝试在我的机器上重新安装Mamp,升级到Sierra OS,重新启动我的笔记本电脑,更改php.ini设置以始终显示所有错误。

ErrorException in Collection.php line 1043:
Undefined offset: 0 (View: /Users/efood-leo/Sites/cardealer/resources/views/panel/interest/form.blade.php) (View: /Users/efood-leo/Sites/cardealer/resources/views/panel/interest/form.blade.php)

这是我正在谈论的错误,只有在我尝试检索

时才会发生
$interest->vehicles[0]['make']

当车辆[0]不存在时。

如果我这样做:

isset($interest->vehicles[0]['make'])

然后我的设置没有错误,其他2个开发人员报告错误仍然在isset中发生。

1 个答案:

答案 0 :(得分:-1)

试试这段代码。

Isset()函数以某种方式返回true,因此没有isset工作

body

详细了解isset(): http://php.net/manual/en/function.isset.php