最佳方法将命名数组附加到 PHP 5.2 中的数组

best way append named array to array in 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 中的 "error" 条目仅在出现实际错误时创建,而在后一种情况下,条目(虽然是空的)以任何一种方式存在。

有没有办法以一种在 PHP 5.2 中也易于阅读的方式获得类似的 'functionality'(即 specifying/adding 命名元素,而不是在初始化时)?

编辑: 原始 post 中的第一个代码片段正在读取 $array = array[];。作者在我post编辑了这个答案后更正了它。


截取的第一个代码不正确。没有array[]这样的东西。正确的语法是 array().

$array = array();

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

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

PHP 中创建 array 的第一种方法不正确。此语法也适用于下面的 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']";