こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、
「Notice: Undefined offset:〇」
というエラーメッセージが表示されたときの原因とその解決策をお伝えします。
前提条件:実行環境
この記事では、PHPを動かすためにXAMPPを使っています。
XAMPPのインストールは、下の記事をご参考ください。
PHPのバージョンは、【7.4.6】です。
エラーメッセージ「Notice: Undefined offset:〇」が表示される原因
エラーメッセージ「Notice: Undefined offset:〇」が表示される原因は、配列で存在しないインデックスを指定して要素を取得しようとしたことが原因です。
以下がエラーの再現プログラムです。
1 2 3 4 |
<?php $flowerArray = array('チューリップ', 'コスモス'); print($flowerArray[3]); ?> |
このプログラムを実行すると、
↑画像のように、存在しないインデックスを指定しているためエラーとなってしまいます。
エラーメッセージ「Notice: Undefined offset:〇」が表示させないようにする解決策
解決策は、要素を取得したい配列に対して、処理を行う前に
- 配列が空かどうか
- 配列の要素数はいくつか
- 処理をしようとしている変数が配列かどうか
これらをチェックすれば、エラーを防ぐことができます。
例えば先ほど書いたエラー再現プログラムは
1 2 3 4 5 6 7 |
<?php $flowerArray = array('チューリップ', 'コスモス'); if(count($flowerArray) > 2){ print($flowerArray[3]); } ?> |
↑のように、要素数をカウントしてif文で条件分岐してあげればエラーは表示されません。
エラーを防ぐために有用な関数は、下記の3つです。
- empty関数
- count関数
- is_array関数
それぞれの関数の詳しい解説は、こちらの記事をご参考ください。
empty関数
【PHP】配列が空かどうかを判定できるempty関数を解説します
【PHP】配列が空かどうかを判定できるempty関数を解説します
count関数
【PHP】配列の要素数を取得できるcount関数を解説します
is_array関数
【PHP】変数が配列かどうかをチェックできるis_array関数を解説します
まとめ:エラーメッセージ「Notice: Undefined offset:〇」が表示されたときは要素数を確認しよう!
以上がエラーメッセージ「Notice: Undefined offset:〇」が表示されたときの原因と解決策でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント