PHP - 与“未定义的偏移量”错误不一致

时间:2017-06-06 18:35:22

标签: php arrays undefined offset

为什么PHP在这里抛出“Notice:Undefined offset”错误:

<?php
$MyVar = array();
echo $MyVar[0]; //Notice: Undefined offset: 0
?>

但不是在这里:

<?php
$MyVar = false;
echo $MyVar[0]; //No error
?>

2 个答案:

答案 0 :(得分:0)

这最终是因为在你的第二个例子中$MyVar[0]为空,这不是错误。您可以引用$MyVar[0][1][2][3]并获得相同的结果。

第一个例子不是null,它是数组中缺少的索引,所以它会警告你。

答案 1 :(得分:0)

如果数组中没有值并且您尝试引用未初始化的索引,则会提供未定义的偏移量。

在第二个代码的情况下,您已为变量分配(初始化)一个与变量[0]无差异的值。

如果在第一个示例中为前两个索引分配值,并参考第三个索引,则应该得到未定义的偏移量错误。

我认为它不是关于null,而是一个为索引赋值的情况。 如果你采用C语言,则数组相当于malloc(在某种程度上)。值得庆幸的是PHP没有崩溃,只是抛出一个未定义的索引[offset]错误