PHP Warning: Undefined array keyエラーの解決方法

PHPで「Warning: Undefined array key」エラーが発生した場合の解決方法です。

PHP Warning: Undefined array keyエラーの解決方法

Undefined array key」は、配列にて存在しないキー名を指定した際に発生するエラーです。このエラーは、当社で保守・運用しているWordPress利用サイトを「PHP7」から「PHP8」へバージョンアップした際に発見されたものです。これまでは通知程度で許容されていたものが、今後はエラーとなるようですね。

ここでは PHPで「Warning: Undefined array key」エラーが発生した場合の解決方法 を紹介します。


Undefined array key エラーの発生原因

Warning: Undefined array key」は、配列にて存在しないキー名を指定した際に発生するエラーです。文字通り「警告エラー(Warning)」に分類されています。

例えば、下記のコードはエラーになります。


$array = array('apple'=>'りんご', 'peach'=>'もも', 'pear'=>'なし');
echo $array['orange'];

連想配列(キーが文字列である配列)に対して、キー名がないものを指定したからですね。

Undefined array key エラーの解決方法

Warning: Undefined array key」のエラーを回避するには、配列に存在しないキー名を指定しないようにする必要があります。

array_key_exists()」や「isset()」でキー名の値が存在するかどうかを判定することでエラーの回避ができます。


// array_key_exists()を利用してキー名の存在チェック
if ( array_key_exists('orange', $array) )
  // キー名が存在する場合

// isset()を利用してキー名の存在チェック
if ( isset($array['orange']) )
  // キー名が存在する場合

まとめ

PHPで「Warning: Undefined array key」エラーが発生した場合の解決方法を紹介しました。

これまで許容されていたのに急にエラーになると焦りますね。PHP8になったら、ちょっとめんどくさい言語仕様に変わったなーって印象かなっと。

おつかれさまでした。

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