PHP – undefined, nullのisset()評価

概要

PHPは変数の宣言のみに関する構文はなく、値の定義によって変数が宣言される。

宣言・初期定義なしに変数を用いるとエラーとなるが、Javascriptのように自動的にドキュメントグローバルの変数になってしまって副作用が出かねないのとどちらがいいのか、悪いのか、不勉強のためすぐには結論が出せない。

未定義変数

未定義変数を直接評価するとUndefinedエラー

未定義の変数を評価しようとするとUndefinedエラーになる。

var_dump()で無理やり評価するとNULLになるが、if文の評価には使えない。

未定義変数をisset()で評価するとfalse

未定義の変数をisset()で評価するとbool型のfalse

if文の条件式にisset()の評価結果をそのまま使うと定義/未定義に対する処理が書ける。

null

nullisset()で評価するとfalse

すなわち、isset()で変数の有効性を評価する場合には、その変数が未定義である場合と、nullによって初期化した場合の区別なくfalseの結果に相当する。

定義済み変数

定義済み変数で内容がnullでなければtrue

したがってisset()で変数を評価した時の結果はtrue/falseのいずれか。

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です