PHP7.2のcount関数の変更点

スポンサーリンク

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を実現するまで こちらの記事にあるように、速度向上の施策の1つとして最...

コメント

タイトルとURLをコピーしました