如果我在PHP中有一个当前为null的数组,那么不应该访问未定义的索引会出现E_NOTICE级错误吗?
如果我有以下代码片段:
$myArray = null;
echo $myArray['foo']['bar'];
我希望会出现错误,但它会毫无问题地运行。我已验证我的日志级别设置为E_ALL。有没有我缺少的东西,或者PHP很高兴为未定义的索引返回null,只要你不试图修改数据?
答案 0 :(得分:3)
是的,未定义的索引只触发非空变量(不要问我为什么)。这会触发通知:
<?php
error_reporting(E_ALL);
$myArray = array();
echo $myArray['foo']['bar'];
?>
答案 1 :(得分:2)
不,当$ myArray设置为null时,它不会显示任何错误。 如果它是一个空数组或除null之外的任何其他值,则返回E_NOTICE级别错误。 我实际上不知道为什么,但它确实如此。