Warning (2): count(): Parameter must be an array or an object that implements Countable
PHP5.6などでphp7.2にバージョンアップを行うとcount関数がWarningを出すことがある。
これは仕様が変わって、countの引数は配列、オブジェクトではないといけなくなったからだ。
よくある想定としては、falseやnullをこれまでは0とカウントしてくれていたものが、エラーを吐くようになったという感じ。
配列やオブジェクトか判別をさせる、またはNULLやFALSEでif文を書いてあげれば回避ができる。
if(!$data){
$count = 0;
}else{
$count = count($data);
}
このようにすればNULやFALSEのときは0になり、それ以外はcountを利用して数を出すことができる
PHP7.2のcountにハマった話 - Qiita
最近、開発環境のPHPのバージョンを5.6→7.2に変更しました。PHP5.6 + CakePHP3 + Apache2.2のECサービスからAMP並のTTFBを実現するまでこちらの記事にあるよ…
コメント