Я хочу создать массив с сообщением.
$myArray = array('my message');
Но с использованием этого кода myArray будет перезаписан, если он уже существует.
Если я использую array_push, он должен уже существовать.
$myArray = array(); // <-- has to be declared first.
array_push($myArray, 'my message');
В противном случае он треснет.
Есть ли способ заставить второй приведенный выше пример работать без предварительной очистки $myArray = array();?






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