countメソッド
要するに以下のQiitaの記事の内容である
PHPのcount関数を利用したときに以下のWarningげ出ることがある
Warning: count(): Parameter must be an array or an object that implements Countable
countメソッドにはCountableなものしか渡せないというWarningだ。Warningなのでphpcsなどで気づきづらいが、error_reportingの設定などをしていないと、Webページに表示されてしまったりするので注意だ。
例えば、今まで count(null)
これは 0
を返していた。PHP7からは、これがWarningを吐くようになったというわけだ。
自分たちが使う分には問題無いが、稀にライブラリなどでこのWarningを踏んでいるものがある。例えば FluentPDO というPHPのORMapper(DB Query Builder)のライブラリなどだ。
FluentPDOに関しては version 1.1.3 で治っていたようだ。「ライブラリがPHP7に対応しているかどうか」や「phpcsで問題ないと判定されていたが実はWarningが出ていたりしないか」はチェックが必要だ。
Exception周り
PHP7で新しく Throwable
というクラスが誕生した。今まではErrorとExceptionというクラスが完全に分かれており、まとめてキャッチすることは不可能だったが、PHP7から、ErrorとExceptionがともにThorwableを継承するようになった。以下の記事の図がわかりやすい。
各種フレームワークを導入している場合、今までExceptionをキャッチしていたところが、Thorwableになっていたりする。そうなると、今までキャッチしていなかったErrorもキャッチされるようになるので、想定外の動画が起こる場合がある。
まとめ
countとExceptionには注意!