経緯
PHPでundefinedになるパターンをいつも頭の中では何となくしか覚えていない状態でした.
そこで今回ChatGPTで表形式にしてもらいました。
※ChatGPT4による回答のためある程度精度が高いとは思いますが間違っている場合もありますので、ご了承ください。
undefinedになる組み合わせ
ケースタイプ | コード例 | 結果 |
---|---|---|
未定義の変数にアクセス | $value; |
Notice: Undefined variable: value |
配列の未定義のキーにアクセス | $array = []; echo $array['key']; |
Notice: Undefined index: key |
オブジェクトの未定義のプロパティにアクセス | $obj = new stdClass(); echo $obj->prop; |
Notice: Undefined property: stdClass::$prop |
関数の未定義の引数を使用 | function test($a) { echo $b; } test(1); |
Notice: Undefined variable: b |
issetでundefinedになる組み合わせ
ケースタイプ | コード例 |
isset() の結果 |
説明 |
---|---|---|---|
未定義の変数をチェック | isset($value); |
false |
$value は定義されていないため、false を返す |
配列の未定義のキーをチェック | $array = []; isset($array['key']); |
false |
$array['key'] は存在しないため、false を返す |
オブジェクトの未定義のプロパティをチェック | $obj = new stdClass(); isset($obj->prop); |
false |
$obj->prop は存在しないため、false を返す |
NULLを含む変数をチェック | $value = NULL; isset($value); |
false |
$value はNULLであるため、false を返す |
定義されている非NULL変数をチェック | $value = 'Hello'; isset($value); |
true |
$value は定義されておりNULLでもないため、true を返す |
まとめ
表形式にしてもらい、自分の備忘録として使えそうです。