Как можно добавить в 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_pusharray_push adding null instead of integerarray_push() expects parameter 1 to be array, null given inАпостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости