$arr = array(); // is this line needed?
$arr[] = 5;
Run Code Online (Sandbox Code Playgroud)
我知道它在没有第一行的情况下有效,但它通常包含在实践中.
是什么原因?没有它会不安全吗?
我知道你也可以这样做:
$arr = array(5);
Run Code Online (Sandbox Code Playgroud)
但我在谈论你需要逐个添加项目的情况.
djd*_*jdy 89
如果您没有声明新数组,并且创建/更新数组的数据因任何原因失败,那么尝试使用该数组的任何未来代码都将E_FATAL因为该数组不存在而导致.
例如,foreach()如果未声明数组且未向其添加任何值,则会抛出错误.但是,如果数组只是空的,则不会发生错误,就像您声明它一样.
Cha*_*rry 23
只是想指出PHP文档arrays实际上是在文档中讨论这个问题.
从PHP站点,附带代码片段:
$arr[key] = value;
$arr[] = value;
// key may be an integer or string
// value may be any value of any type
Run Code Online (Sandbox Code Playgroud)
"如果
$arr还不存在,它将被创建,所以这也是创建数组的另一种方法."
但是,正如其他答案所述...你真的应该为你的变量声明一个值,因为如果你不这样做会发生各种坏事.
想想那些追随你的程序员!如果您只是看到$arr[] = 5,如果$arr没有阅读范围中的所有前面的代码,您可能不知道可能是什么.显式$arr = array()行清楚地表明了这一点.