I have a working php application and it is running fine on php 7.0 version. But when I upgrade a php version to 7.2. I am getting this error:
count(): Parameter must be an array or an object that implements Countable
I am getting errors on code where I am comparing my data with count function. For example this is my code:
$keytest = KeyUser::where('key', '=', $key)->first();
if (count($keytest) == 1) {
//logic ...
}
I am using laravel where I am running a query and counting it if it is equal to 1 then logic should work.
So my problem is I have written this kind of logic on many controllers and if I have to change everything one by one it could become nightmare. So is there any way where I can write a global function to make count work as it was working in php older version. What can be the easiest fix.
This problem can be handle using disable error handling. Please refer this link for solution: Laravel not compatiable with php 7.2
Here I found a solution to your problem simply write this code inside your controller or if you want to make it work for whole application write this code in route.php:
//app/Http/routes.php
if (version_compare(PHP_VERSION, '7.2.0', '>=')) {
// Ignores notices and reports all other kinds... and warnings
error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
// error_reporting(E_ALL ^ E_WARNING); // Maybe this is enough
}
I know this is not the best solution but it can be a good hack.