如果我在PHP中有一个当前为空的数组,不应该访问未定义的索引提供E_NOTICE级错误?未定义的索引行为
如果我有下面的代码片段:
$myArray = null;
echo $myArray['foo']['bar'];
我希望一个错误,但它运行没有问题。我已验证我的日志级别设置为E_ALL。有没有我丢失的东西,或者是PHP开心的返回null为未定义的索引,只要你不试图修改数据?
如果我在PHP中有一个当前为空的数组,不应该访问未定义的索引提供E_NOTICE级错误?未定义的索引行为
如果我有下面的代码片段:
$myArray = null;
echo $myArray['foo']['bar'];
我希望一个错误,但它运行没有问题。我已验证我的日志级别设置为E_ALL。有没有我丢失的东西,或者是PHP开心的返回null为未定义的索引,只要你不试图修改数据?
是的,未定义的索引只触发非空变量(不要问我为什么)。这将触发一个通知:
<?php
error_reporting(E_ALL);
$myArray = array();
echo $myArray['foo']['bar'];
?>
不,它在$ myArray设置为null时不显示任何错误。 如果它是一个空数组或任何其他值,除了null,那么它将返回一个E_NOTICE级别的错误。 我真的不知道为什么,但它是这样。
刚刚测试过,你说得对。设置为null不会导致错误,但是一个空的数组可以。 –
试图访问bugs.php.net至于我,这是奇怪的行为。 $ myArray的=阵列(); echo $ myArray ['foo'] ['bar'];因为我认为得到错误 – RiaD
@Dan W:FabioG,是正确的。 – linguini
@RiaD:没有发现错误。 http://www.meandeviation.com/tutorials/learnphp/php-syntax-check/v4/do-syntax-check.php – linguini