PHP
比較表

PHPによる関数の正しい比較

More than 1 year has passed since last update.


PHPによる関数の正しい比較

 PHPにおいて、入力されたもの、データベースから返されたものを比較する正しい方法を解説します。

 


関数による比較の種類

比較によく使われるPHPの関数は


is_numeric()

数値(文字列の数値も)がどうかをチェックする


is_null()

null(値を持たない)かどうかをチェックする


empty()

空かどうかチェックする


isset()

変数が存在するか、nullではないことをチェックする


is_string()

文字列かどうかをチェックする


is_int()

整数かどうかをチェックする


is_array()

配列かどうかをチェックする


count()

配列の要素数を数字で返す


また、配列でもなくインターフェイスを実装したオブジェクトでもない場合、1と返される


NULLの場合、0が返される


比較


is_nullとemptyの違い

is_null
empty

""
false
true

"0"
false
true

0
false
true

0.0
false
true

NULL
true
true

array()
false
true

array(1)
false
false

表のように、0(文字列を含む)が入った場合と空の配列の時emptyはtrueにしてしまいます。


よってis_nullの方がより細かい判定ができるということになります。


is_nullとissetの違い

is_null
isset

""
false
true

"0"
false
true

NULL
true
false

array()
false
true

array(1)
false
true

表のようにis_nullとissetは真逆になっていることがわかります。


issetは空文字や空の配列であっても存在していることを示しています。よって、配列の存在判定をする際はis_array()でさらに要素があるかどうかを判定したい場合はcount()を使うといいと思います。


is_nullと!isetの違い

変数の読み出しの点では動作が異なるが、null値かどうかを返す結果は同じです。


3.大切なこと

 大切なことは返ってくるものの可能性を考えて使うことです。この表を見ても覚えられないので、混乱することもあるかもしれませんが、自分で実行した結果を見て比較することも大切だと思います。


参考文献

公式PHP Documentation