PHP5.x→7.xへのバージョンアップで出るエラーの解消方法
PHP5.xから7.xへバージョンアップは極力下位互換されているので、ほとんどエラーなしで移行することができますが、一部エラーが出ることがあります。
そのエラーの内容と対処方法を紹介していきます。
エラー内容
count(): Parameter must be an array or an object that implements Countable
エラーの原因
おそらく移行でつまづくのにこれが一番多いんではないでしょうか?
PHP7.2からはcount()の引数に配列かcountableなObjectでないとWarningが出ますのでコード自体を書き換える必要があります。
それ以前のバージョンは文字列もcountしてくれたり、nullでも0にしてくれましたがダメになりました。
is_arrayで配列かどうか判定して、配列として上書きしてしまうなどの対応が必要です。
implode(): Passing glue string after array is deprecated. Swap the parameters
エラーの原因
PHP7.4より前はimplode(string $gue, array $pieces) の引数が逆でも暗黙的に正しく処理してくれましたが、7.4以降は許可しなくなりました。
2つの引数の順序を入れ替えて対応しましょう。
コメント