Как можно добавить в array null-значение? Array_push ругается:
Warning: array_push() expects parameter 1 to be array, null given in C:\wamp64\www\Retrofit\includes\DbOperation.php on line
Код
$array_sensor_light = array();
while($stmt->fetch()){
...
array_push($array_sensor_light, $sensor_light);
...
}
$parameters = array();
....
$array_sensor_light = array_unique($array_sensor_light);
...
parameters['sensor_light'] = array_sensor_light;
...
return parameters;
Посмотрите более детально на ваше предупреждение (не ошибка, а предупреждение):
Warning: array_push()
expects parameter 1 to be array, null
given in
C:\wamp64\www\Retrofit\includes\DbOperation.php on line...
Переведем на русский язык текст предупреждения:
Предупреждение: array_push()
ожидает, что параметр 1 будет массивом,
null указан в C:\wamp64\www\Retrofit\includes\DbOperation.php в
строке...
Откроем документацию по методу array_push
: добавляет один или несколько элементов в конец массива. Обрабатывает массив как стек и помещает переданные переменные в конец массива. Длина массива увеличивается на количество переданных переменных. Входные параметры
Исходя из сообщения, указанного в предупреждении можно прийти к выводу, что первый параметр, массив, в который вы хотите добавить значения - имеет значение null.
Также, в качестве совета, не рекомендуется использовать метод array_push()
, если вы не используете результат выполнения операции добавления. Связано это с тем, что метод работает медленнее, чем стандартная конструкция добавления в конец массива. Для примера, чтобы добавить в конец массива значение, достаточно написать следующий код:
$array_sensor_light[] = $sensor_light;
Такое добавление в конец массива работает гораздо быстрее, чем array_push()
. Прочитав документацию чуть более детально, можно найти следующее:
Note: array_push()
will raise a warning if the first argument is not an array. This differs from the $var[]
behaviour where a new array is
created.
Что в свою очередь говорит нам о том, что array_push()
вызовет предупреждение, если первый аргумент не является массивом. Это отличается от поведения $var[]
, когда создается новый массив. То есть массив не был инициализирован при вызове array_push()
метода.
Другими словами, значение null
вы можете поместить в массив, просто нужно знать некоторые тонкости при использовании метода array_push()
.
Полезные ссылки для ознакомления и изучения:
array_push
array_push
adding null
instead of integer
array_push()
expects parameter 1 to be array, null
given inВиртуальный выделенный сервер (VDS) становится отличным выбором
Нужно с генерировать csrf токен для POST запроса ,
Как вывести, по возможности без дополнительных модулей, краткие новости с номерами получаемыми PHP скриптом в момент генерации страницы
Имеется ли аналог этой команды, чтобы определялись уникальные слова, без указания ключа первого вхождения? Может у этой команды есть какой-нибудь...
Есть значение в БД номера телефона в формате 380501234567 Требуется вывести это значение на экран в формате (050) 123-45-67