PHP8 Warning Undefined variable エラーが表示された場合の修正方法

PHP7からPHP8へ切り替えたら「Warning: Undefined variable ・・」が表示されたので、その修正方法を書いておきます。

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にバージョンアップしたら思った以上にエラーが出てて焦ったすね。やはり言語仕様が変わるとつらいなー、なんて思ったりして。

そんなわけで、エラーが出ている個所のコードを見直して、きちんと変数の初期化をしておきましょうね。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。