最好的方法是在PHP 5.2中将命名数组附加到数组

时间:2015-08-20 01:31:23

标签: php arrays php-5.2

我习惯了这种表示法来创建空数组,并在需要时为它们添加命名元素;

$array = [];

// in case there is an error
$array["error"][] = "new error message as element 0 of $array['error']";

现在我了解到数组的[]符号在旧版本的PHP中不起作用,比如PHP 5.2。

相反,我必须这样做;

$array = array(
  "error" => array()
);

array_push($array["error"], "new error message as element 0 of $array['error']");

这种方式在我的情况下有点不方便,因为关于第一个代码片段的好处是$array中的“错误”条目仅在存在实际错误时创建,而在后一种情况下条目(尽管是空的)存在。

有没有办法获得类似的'功能'(即在需要时指定/添加命名元素,而不是在初始化时),这种方式在PHP 5.2中也很容易阅读?

2 个答案:

答案 0 :(得分:3)

修改 原帖中的第一个代码段是阅读$array = array[];。作者在我发布这个答案后对其进行了更正。

剪切的第一个代码不正确。没有array[]之类的东西。正确的语法是array()

$array = array();

// in case there is an error
$array["error"][] = "new error message as element 0 of $array['error']";

您不必担心PHP版本。这个语法从一开始就在PHP上运行,它可能会永远有效。继续使用它。

答案 1 :(得分:1)

array中创建PHP的第一种方法不正确。此语法也适用于PHP5.2以下,因此您不必担心它。您不需要使用array_push,只需执行以下操作即可。

正确的语法是:

$array = array(); // notice it doesn't to array[]

// add error when there is one
$array["error"][] = "new error message as element 0 of $array['error']";