dev環境では起きず、手元のローカル環境でのみ起きていた事象。
phpのバージョンにより発生するもので、mampでphp7.3環境では起きず、7.4では発生しておりました。
エラー名で原因はすぐ見つかりましたが、直し方どうするかな〜とちょっと迷いました。
###◼️原因
特定の変数のデータを取得しようとした際に、
その変数の中身が入っていないにもかかわらずデータをとろうとすると、
7.3以前では nullを返し、
7.4以降では タイトルのエラーが出てしまう状態でした。
//発生の例
$test; //test変数を作成
if($test["hoge"] == "huge"){ //そもそも$testには何も入れていない状態
echo $test["hoge"];
}
この場合、タイトルのエラー
◼️Trying to access array offset on value of type null
が画面に表示します。
この場合、まずは$testにデータが存在しているかを判定すると良いです。
$test; //test変数を作成
if(isset($test)){ //ここでまず$testにデータが入っているかを判定
if($test["hoge"] == "huge"){ //そもそも$testには何も入れていない状態。なので
echo $test["hoge"]; //ここは通りません。
}
}
ただ、これだとちょっとネストで読みづらいので下記の方法の方がわかりやすいです。
//例
$test; //test変数を作成
if(isset($test) && $test["hoge"] == "huge"){
echo $test["hoge"];
}
phpの&&の複数条件式は左側から評価をし、falseとなった時点でその式を抜けます。
この例なら「isset($test)」の時点でfalseなので、次へ進むということになります。