У меня есть рабочее приложение php, и оно отлично работает на версии php 7.0. Но когда я обновляю версию php до 7.2. Я получаю эту ошибку:
count(): Parameter must be an array or an object that implements Countable
Я получаю ошибки в коде, где я сравниваю свои данные с функцией подсчета. Например, это мой код:
$keytest = KeyUser::where('key', '=', $key)->first();
if (count($keytest) == 1) {
//logic ...
}
Я использую laravel, где я запускаю запрос и считаю его, если он равен 1, тогда логика должна работать.
Итак, моя проблема в том, что я написал такую логику на многих контроллерах, и если мне придется менять все один за другим, это может стать кошмаром. Итак, есть ли способ, где я могу написать глобальную функцию, чтобы заставить работать счетчик, как он работал в более старой версии php. Что может быть проще всего исправить.
count()
, которая проверяетis_object()
и возвращает1
в этом случае, не выдавая ошибку. И после этой проверки вы выполняете старый вызовcount()
. Но я понятия не имею, можно ли переопределить встроенные функции самого языка, поэтому вам может потребоваться обновить все ссылки на функцию. - person Namoshek   schedule 03.06.2018count()
(неправильно) — возможно, стоит исправить случаи по-другому. - person Namoshek   schedule 03.06.2018$keytest
)null
или нет. Вы должны использоватьif (!is_null($keytest)) {/* code */}
. - person Tpojka   schedule 03.06.2018