PHP 7→8 更新時にエラー『Warning: Undefined array key』バージョンアップでの不具合対処方法

発生事象

PHP7からPHP8への切り替えを行った後、画面に

Warning: Undefined array key ~

というエラーメッセージが表示される。

原因・対処(対応)方法

エラーメッセージの発生原因は、PHP7では許容されていたコーディングが、PHP8ではエラーとして扱われるようになったことが原因となっている。

$_GET[“param”] のような定義していない変数
⇒PHP7では通知として許容
⇒PHP8ではエラー(警告)

上記のような変数すべてに対して、以下のような修正が必要となる。

▼修正方法▼
$_GET[“param”]

if( isset( $_GET[“param”]  ) )

また、とりあえず早く、エラーメッセージを非表示にするだけならば、

// 警告(Warning)エラーのみ非表示にする
error_reporting(E_ERROR | E_PARSE | E_NOTICE);

上記をソースコードの先頭に追記するだけという簡単な対応方法もあるが、上記は警告エラーを全て非表示にするだけなので、警告自体は無くなっておらず、他の警告も全て表示されなくなってしまうため、こちらはあくまで一時的な対処法となる。

コメント

タイトルとURLをコピーしました