小技プログラミング

初期化の検証でis_null()isset()のどちらを使うのが正しいか?

isset() は以下3パターンのいずれかの場合に FALSE が返却され、その他の場合TRUE が返却されます。
・null
・未初期化
・変数の宣言自体が定義されていない

is_null() は以下3パターンのいずれかの場合に TRUE が返却され、その他の場合FALSE が返却されます。
・null
・未初期化
・変数の宣言自体が定義されていない

isset()is_null()も観点が逆なだけで同じ検証結果が得られるようです。
その為、どちらも 初期化の正しい検証方法になると言えます。

その他よく使われる empty() 関数はどうなのか?
empty() は null 、 未初期化 、 変数の宣言自体が定義されていない に加えて 空文字 、 未初期化の配列割り当て 、 false 、 0(数字と文字列のゼロ) でTRUE が返却され、その他の場合にFALSE が返却されます。
その為、初期化の検証に利用する場合は、上記の返却結果を留意した上で利用する必要があります。

詳しくは下記を参照してください。
PHP 型の比較表

最終更新日:2018/5/22