pict-php.png PHPでよく変数のチェックに使う関数にisset()とempty()があります。この関数についての覚え書きです。

isset()は変数が定義されているかどうかを調べるのに使われ、empty()はその変数が空かどうかを調べるのに使われますがでは0や""、NULLがセットされた場合にはどうなるのか微妙なのでそれをまとめました。

以下の表はisset()と!empty()の戻り値を変数の内容と状態で比較したものです。

変数の内容 isset()の戻り値 empty()の戻り値
未定義、もしくはunset()実行後 FALSE TRUE
NULL FALSE TRUE
"" (空文字列) TRUE TRUE
0、0.0 TRUE TRUE
"0" (文字列の0) FALSE TRUE
その他 TRUE FALSE
この表でわかると思いますが、0、0.0、"0"、""などはisset()の場合には定義されているとなるのに対して、empty()では空と判断されることで、この部分の違いに注意が必要です。また、empty()では変数が未定義な場合もTRUEが返るのは知りませんでした。

isset()
http://www.php.net/manual/ja/function.isset.php

empty()
http://www.php.net/manual/ja/function.empty.php

 

あなたの評価: なし 平均: 5 (1 vote)

定義されていないのと、nullは同じものだと思いますよ。PHPの内部処理は別物として扱っていますが、PHPを使う側としては同じはずです(エラーやウォーニングで違って見えますが)

情報ありがとうございました。