PHP8.2に移行して、更新されていないプラグインから非推奨コードの警告が多数出力されるようになりました。
更新されていないプラグインなので、自分で修正するしかありません。
今回は、Deprecated: Automatic conversion of false to array is deprecated というメッセージの対処方法です。
Deprecated: Automatic conversion of false to array is deprecatedはどんなエラーか?
変数にfalseが入った後で、その変数を配列として使ってはいけない、という内容です。
どんな時に起こるかというと、
$arr= false;
$arr[] = 1;
こんな感じで、false設定した変数をそのあとで、配列として使うと、このメッセージが出ます。
よくあるのが、配列が戻り値となっている関数でfalseが返ってくる場合に、戻り値を格納している変数にfalseが入ったり入らなかったりするので、この問題が起こります。
回避するには?
配列として使う前に、以下のようなコードで初期化してあげればメッセージが消えます。
if(!is_array($arr)) $arr = [];
よくあるコード
PHP8で警告が出るコード
$arrがfalseの時に、$arrを初期化するコードなのだが、一度$arrにfalseが入っているので配列として使えない。
$arr= get_xxxx();
if($arr===false){
$arr[]=xxx;
}
PHP8で警告が出ないように修正
$arrがfalseの時には、一度配列として$arrを初期化してから使うと警告は出ない。
$arr= get_xxxx();
if($arr===false){
$arr=[];
$arr[]=xxx;
}
まとめ
PHP8に移行すると、保守されていないプラグインから非推奨コードが沢山検出されます。
その場合は、自分で修正して、アップデートがきたらその問題は対応されているはずですから、そのまま更新すればいいと思います。