php:переход к массиву, который может существовать, а может и не существовать
-
20-08-2019 - |
Вопрос
Я хочу создать массив с сообщением.
$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');