PHPでNULL判定を行う:is_null, isset, empty

PHPで変数がNULLかどうか判定するには、isset、is_null、emptyなどの関数を使用します。

is_null関数の使い方

指定した変数がNULLであるか変数が宣言されていない場合はtrueを返し、NULL以外の値の場合はfalseを返します。値がfalse、空白、0、でも、返り値はfalseとなります。

変数が未定義である場合も、is_null関数ではtrueとなる点に注意してください。

isset関数の使い方

指定した変数が宣言されて存在して、値が設定されていればtrueになります。

値は、空白、0何でも良いので初期化されていればtrueになりますが、変数宣言が無かったり、値がNULLの場合はfalseになります。基本的には、!is_null()と同じ結果となりますが、一部ケースで異なる結果となります。

また、複数の変数を指定することも可能です。複数指定した場合は、全ての変数に値が設定されていればtrueになります。

empty関数の使い方

NULLやfalse、0、空配列、空文字、未定義の場合にtrueとなります。empty関数の場合は、値が文字列の0「"0"」でもtrueとなるので注意してください。

NULLか否かを判定する時に使用するのは、あまりおすすめできません。

isset、emptyを組み合わせした判定

issetとemptyを組み合わせて判定することで、もう少し厳密な判定処理が行えます。

コード

isset、is_null、emptyなどによる判定は、上記のように複雑なため予期せぬ不具合の原因となりがちなので注意してください。