是否应该在使用之前声明数组?

时间:2013-02-15 19:18:57

标签: php variables

哪一个是更好的做法,代码A或B:

A:

    $array = array();
    $array[] = 'value';

B(使用数组而不将其声明为数组):

    $array[] = 'value'

7 个答案:

答案 0 :(得分:2)

A更好。 B在运行时会产生PHP Notice,但仍然可以正常运行。正如其他人提到的那样,我最初忽略了,A也会使通过确保$array在您需要它时是您想要的而不是其他变量类型或先前定义的变量,您的代码更加健壮。

编辑:当使用未定义的变量时,PHP没有发出通知是在附加到未初始化的数组时。来自php.net:

  

如果使用未初始化的变量,则会发出E_NOTICE级别错误,但是在将元素附加到未初始化的数组的情况下不会发生。

答案 1 :(得分:2)

最佳实践宣布它。

原因:如果由于某种原因有人在你使用它之前打开了register_globals并设置了$ array,你可能会得到奇怪的结果。 如果你声明它,你总是确定你有一个空数组。

答案 2 :(得分:2)

或 C:$ array = array('value');

答案 3 :(得分:2)

A是更好的方法,但如果它是一个已知值,我会做     $阵列=阵列( '值');

try this site

答案 4 :(得分:0)

IMO取决于脚本的复杂程度。就像在foreach循环中使用例如$ i一样,你可能会使用数组。

首先定义数组,确保它是一个新的空数组,确保它不包含以前使用的数据。

答案 5 :(得分:0)

A优于B,因为@ G-Nugget出于同样的原因说过,但推论是,如果你突然冒出一些变量,它也会让你的代码更难阅读。

答案 6 :(得分:0)

根据manual,提及使用方括号语法创建/修改的部分实际上意味着使用$array[] = 'value';创建数组与通过声明创建数组一样正确在为其赋值之前,变量就是这样。

换句话说,不要担心。