为什么PHP在这里抛出“Notice:Undefined offset”错误:
<?php
$MyVar = array();
echo $MyVar[0]; //Notice: Undefined offset: 0
?>
但不是在这里:
<?php
$MyVar = false;
echo $MyVar[0]; //No error
?>
答案 0 :(得分:0)
这最终是因为在你的第二个例子中$MyVar[0]
为空,这不是错误。您可以引用$MyVar[0][1][2][3]
并获得相同的结果。
第一个例子不是null,它是数组中缺少的索引,所以它会警告你。
答案 1 :(得分:0)
如果数组中没有值并且您尝试引用未初始化的索引,则会提供未定义的偏移量。
在第二个代码的情况下,您已为变量分配(初始化)一个与变量[0]无差异的值。
如果在第一个示例中为前两个索引分配值,并参考第三个索引,则应该得到未定义的偏移量错误。
我认为它不是关于null,而是一个为索引赋值的情况。 如果你采用C语言,则数组相当于malloc(在某种程度上)。值得庆幸的是PHP没有崩溃,只是抛出一个未定义的索引[offset]错误