PHP8 Warning Undefined variable エラーが表示された場合の修正方法
PHP7からPHP8へ切り替えたら「Warning: Undefined variable ・・」が表示されたので、その修正方法を書いておきます。
このエラーは、当社で保守・運用しているWordPress利用サイトを「PHP7」から「PHP8」へバージョンアップした際に発見されたものです。
原因は後述しますが、これまでは通知程度で許容されていたものが、今後はエラーとなるようですね。
ここでは PHP8で「Warning: Undefined variable」が表示された場合の修正方法 を紹介します。
PHP8で「Warning: Undefined variable」エラーが出るようになった原因
「Warning: Undefined variable・・・以下略」が表示される原因は、変数の宣言ついて厳密に規定するようになったから、といえばよいでしょうか。
PHP7までは、変数が厳密に定義されてなくてもスルー出来ていました。これができなくなったということです。
具体的には下記のようなコードは「Warning: Undefined variable」エラーとなります。
function hoge() {
$html .= '<html>';
return $html;
}
echo hoge();
原因は「$html .= '<html>';」の部分ですね。変数が初期化されていないのに、結合代入演算子('.=')が使われていることが原因です。
「Warning: Undefined variable」エラーの解決方法
「Warning: Undefined variable」エラーの解決方法は変数の初期化をすればよいだけです。
$html = '<html>';
もしくは
$html = '';
$html .= '<html>';
と変更すればエラーは出なくなります。
まとめ
PHP8で「Warning: Undefined variable」が表示された場合の修正方法を紹介しました。
筆者は変数の初期化の癖がついているプログラマーだと思ってたんだけど、PHP8にバージョンアップしたら思った以上にエラーが出てて焦ったすね。やはり言語仕様が変わるとつらいなー、なんて思ったりして。
そんなわけで、エラーが出ている個所のコードを見直して、きちんと変数の初期化をしておきましょうね。
おつかれさまでした。