開発環境のPHPのバージョンを7.2に変更したらハマった話

サーバーの移設が発生したのに合わせてPHPのバージョンを上げたら、これまで出ていなかったエラーが表示されるようになってしまったので
おなじようなことにハマった方のために備忘録としてブログを残しておこうと思います。

今回私がでたエラーは以下。

Warning: count(): Parameter must be an array or an object that implements Countable in /home/nakweb03/cl-assist.com/public_html/wp-includes/media.php on line 1206

検索していろんな方のブログをみたけど、書いてある内容がちょっとずつ違う…。

で、結局何が原因だったのかというと、countの引数には配列、もしくはカウントすることができるオブジェクトにしなさいよ~
というエラーが出ているよう…。

PHPの公式マニュアルには以下の記述が…

In PHP 7.2.0
count(NULL) returns a warning:
Warning: count(): Parameter must be an array or an object that implements Countable

In previous versions:
count(NULL) returned 0 without any warnings.

上記の理論はこうだ。
これまでのバージョンではcount(NULL)に対して0を返していた
しか、PHP7.2からwarningを出しますよ~。

ということで、さっそくエラーをはいている部分を以下のように直すことにした。

media.phpの1206行目にある以下の部分を

if ( ! $src_matched || count( $sources ) < 2 ) {
 return false;
}

下記のように変えてあげれば無事解決!!

if ( ! $src_matched || ! is_array( $sources ) || count( $sources ) < 2 ) {
 return false;
}

これで一件落着。
同じ内容で困っている人がコピペで解決できてますように~!