PHPのUndefined array key:原因と対処法

結論 Warning: Undefined array key "email" は、配列に存在しない email キーを読み取ったという警告です。まず警告に書かれたファイルと行を開き、どの配列の、どのキーを読んでいるか確認してください。 そのキーが必須なら、入力元やデータの作り方を確認します。省略可能なら、?? で既定値を用意できます。値が null でもキーの存在を区別したい場合は array_key_exists() を使います。 どんなときに表示されるか 例えば、フォームから email が送られていないのに、次のように直接読むと警告になります。 <?php $email = $_POST['email']; PHP Warning: Undefined array key "email" in /var/www/app/form.php on line 8 "email" は見つからなかったキー、後ろのファイル名と行番号は読み取りを行った場所です。整数キーの場合は Undefined array key 3 のように表示されます。実際の表示形式は実行環境によって異なります。 この警告は E_WARNING です。通常は処理が続き、読み取った値は null になります。ただし、独自のエラーハンドラーが警告を例外に変換する環境では、処理が中断されることもあります。 PHP 7から8で何が変わったか 配列にないキーを読む状況は PHP 7 にもありました。PHP 7.4 では文字列キーに Notice: Undefined index: email、整数キーに Notice: Undefined offset: 3 のような通知が出ます。PHP 8.0 ではこの扱いが Notice から Warning に引き上げられ、Undefined array key という文言になりました。 ...

2026年10月27日 · ErrorLog