PHP 7.4 - Warning: count(): Parameter must be an array

6.5k Views Asked by At

I just upgraded my PHP Version from 5.6 to 7.4. I used count() function in my page, example:

$watch_server_count  = count($watch_server);
if ($watch_server_count > 0) {
    foreach ($watch_server->table as $key=> $watch_server_rows) {

    }
}

Warning: count(): Parameter must be an array or an object that implements Countable in...

2

There are 2 best solutions below

0
On

Since PHP 7.1, you can use is_iterable before performing foreach.

(PHP 7 >= 7.1.0) is_iterable — Verify that the contents of a variable is an iterable value

https://www.php.net/manual/en/function.is-iterable.php

So the code will look like this:

if ( is_iterable($watch_server->table) ) {
    foreach ($watch_server->table as $key=> $watch_server_rows) {
        //
    }
}
1
On

You can try this way. is_countable

https://www.php.net/manual/en/function.is-countable.php

if ( is_countable($watch_server->table) ) {
    foreach ($watch_server->table as $key=> $watch_server_rows) {
        ...
    }
}