LoginSignup
8
3

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-05-23

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

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3