Я хочу создать массив с сообщением.
$myArray = array('my message');
Но используя этот код, myArray
будет перезаписан, если он уже существует.
Если я использую array_push
, он должен уже существовать.
$myArray = array(); // <-- has to be declared first. array_push($myArray, 'my message');
В противном случае он обманет.
Есть ли способ сделать второй пример выше, без первой очистки $myArray = array();
?
Проверьте, существует ли массив первым, а если нет, создайте его … затем добавьте элемент, зная, что массив будет определенно определен заранее:
if (!isset($myArray)) { $myArray = array(); } array_push($myArray, 'my message');
Вот:
$myArray[] = 'my message';
$ myArray должен быть массивом или не установлен. Если он содержит значение, которое представляет собой строку, целое число или объект, который не реализует arrayaccess, он будет терпеть неудачу.
Вы должны использовать is_array (), а не isset. Полезно, если myArray устанавливается из функции, которая возвращает массив или строку (например, -1 при ошибке)
Это предотвратит ошибки, если myArray объявлен как не массив в другом месте.
if(is_array($myArray)) { array_push($myArray,'my message'); } else { $myArray = array("my message"); }
if ($myArray) { array_push($myArray, 'my message'); } else { $myArray = array('my message'); }
OIS "будет работать.
Или
if (!isset($myArray)) $myArray=array(); array_push($myArray, 'message');