PHP | Trying to access array offset エラーの原因と修正案

PHPで発生するエラー「Trying to access array offset on value of type bool」「Trying to access array offset on value of type null」ng to access array offset on value of type int」が発生する原因と対処・修正案について紹介しています。

Warning: Trying to access array offset on value of type bool in ~
警告:bool型の値の配列オフセットにアクセスしようとしています

Warning: Trying to access array offset on value of type null in ~
警告:null型の値の配列オフセットにアクセスしようとしています

Warning: Trying to access array offset on value of type int in ~
警告:int型の値の配列オフセットにアクセスしようとしています

Trying to access array offset エラーの発生原因と修正案

「Trying to access array offset」というPHPエラーは主に「null」「bool型(true、false)」「数値型」の変数に配列として取得しようとした際に発生するエラーです。

このエラーは警告エラー(Warning)に分類されています。

例えば「Trying to access array offset」エラーが発生する条件を満たしたシンプルなサンプルコードは以下のようになります。

いずれの場合も配列として扱う事はできず、このエラーが出力されます。

$bool = true;
echo $bool[0];
$null = null;
echo $null[0];
$int = 123;
echo $int[0];

「Trying to access array offset」を修正するには、問題となっている変数が配列かどうかを確認する必要があります。

文字列型に関しては文字数内であれば1文字目ずつに区切った配列として扱われますので「Trying to access array offset」エラーは発生しません。
文字数以上の値を指定すると「Uninitialized string offset」エラーが出力されます。
関連:PHP | Uninitialized string offset エラーの原因と修正案 | ONE NOTES

PHP,PHP エラー

Posted by Yousuke.U