さくらのVPSを契約して、CentOS7環境を構築中です。
CentOS Linux release 7.4.1708 (Core)
PHP 7.2.1 (cli) (built: Jan 3 2018 08:53:04) ( NTS )
psql (PostgreSQL) 9.6.5
先日の、remi-php72リポジトリの件でようやくほぼほぼ最新安定リリース環境でのweb&db構築ができつつあり、既存システムの動作確認に着手できたのですが、早速PHPのバージョン変更による影響に遭遇したのでそのメモです。
Warning: count(): Parameter must be an array or an object that implements Countable とは
PHPのオンラインドキュメントで、countabe ではない型をカウントしたときの警告によると、
countable ではない型に対して count() (およびそのエイリアスである sizeof()) を使ったときに E_WARNING が発生するようになりました。
とのことです。例えばFuelPHPでこんなコードを書いていました:
if (count(Input::post('foo')) > 0) {
~
}
これは、POSTにて受信するパラメータが存在する場合にだけ処理を行いたいときに書いたものですが、そもそもこのfooパラメータを受信しないときには Input::post('foo') はNULLを返すため、countableではないことになり上記のWarningが発生していました。
なので、このWarningを回避するためにコードを変更しています:
if (!is_null(Input::post('foo'))) {
if (count(Input::post('foo')) > 0) {
~
}
}
もうちょっとスマートなやり方はないかなぁ。