我习惯了这种表示法来创建空数组,并在需要时为它们添加命名元素;
$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中也很容易阅读?
答案 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']";