1

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

A:

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

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

    $array[] = 'value'
4

7 回答 7

2

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

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

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

于 2013-02-15T19:20:30.717 回答
2

最佳实践是声明它。

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

于 2013-02-15T19:21:01.257 回答
2

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

于 2013-02-15T19:26:13.957 回答
2

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

试试这个网站

于 2013-02-15T19:28:13.953 回答
0

IMO 这取决于脚本的复杂性。就像 foreach 循环中的 $i 一样,您可能会经常使用数组。

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

于 2013-02-15T19:21:36.610 回答
0

AB@G-Nugget 出于同样的原因所说的要好,但推论是,如果你有变量突然出现,它也会使你的代码更难阅读。

于 2013-02-15T19:24:22.750 回答
0

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

换句话说,不要担心。

于 2013-02-15T19:43:18.453 回答