лучший способ добавить именованный массив в массив в 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']");

Этот способ немного неудобен в моем случае, потому что отличительной особенностью первого фрагмента кода является то, что запись «error» в $array создается только при наличии фактической ошибки, тогда как в последнем случае запись (хотя и пустая) существует в любом случае.

Есть ли способ получить аналогичную «функциональность» (то есть указание / добавление именованных элементов при необходимости, а не при инициализации) таким способом, который также легко читается в PHP 5.2?

1

Решение

РЕДАКТИРОВАТЬ:
Первый фрагмент кода в оригинальном сообщении читал $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 с самого начала и, вероятно, будет работать вечно. Продолжайте использовать это.

3

Другие решения

Первый способ создания 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']";
1

По вопросам рекламы [email protected]