У меня возникла следующая проблема:
Я переместил некоторый код с сервера PHP 7.1 на другой с PHP 7.3.16.
В некоторых сценариях был count функция для массива, который может иметь значение NULL .
Согласно PHP count () docs :
Возвращаемые значения:
Возвращает количество элементов в array_or_countable. Если параметр не является ни массивом, ни объектом с реализованным интерфейсом Countable, возвращается 1. Есть одно исключение, если array_or_countable имеет значение NULL, будет возвращено 0.
В PHP 7.1 все было в порядке.
Теперь в PHP 7.3 скрипт полностью висит в этой строке до истечения времени ожидания.
Затем выдается следующее предупреждение: PHP Предупреждение: count (): Параметр должен быть массивом или объектом, реализующим Счетное
Код, который всегда висит:
<?php
/* .... code ..... */
$array = null; //this array becomes NULL
$x = count($array);
echo ''.$x;
Я искал и ничего не нашел. Спасибо.
Небольшое обновление:
Сервер выше - Ubuntu 18.04 LTS.
Я пробовал то же самое на сервере CentosOS 7 с PHP 7.3.15 и функция работает как положено.
Что может быть не так в Ubuntu?