けいブログ

プログラミングとお金の知識を身につけていくブログ

PHP メモ:変数チェック

 

PHPで変数をチェックする方法についてメモしていきます。

 

もし間違っていた場合、指摘していただけるとありがたいです。

 

 

変数をチェックする理由

エラーが表示されるように設定してあると、宣言していない変数を呼び出したときエラーになる。→ Notice :undefined variable

 

var_dumpで未定義の変数の中身を調べるとNULLと表示される。つまり値が何も代入されていない状態。初期化されていない状態。

var_dump($var); //NULL

 

Noticeレベルのエラーなので、動かなくなることはないが、意図しないエラーの原因となるので変数を使うときは初期値を代入しておくべき。

 

マニュアルでも初期化しておくことは良いことと説明されている。

https://www.php.net/manual/ja/language.variables.basics.php

 

isset

変数がセットされていることと変数がnullではないことをチェックする。

変数の値がnull以外のときはtrueを返す。nullのときと、変数そのものがないときはfalse。

 

https://www.php.net/manual/ja/function.isset.php

  

empty

変数が空かどうかチェックする。

変数が空であればtrue、それ以外はfalseを返す。

 

空と判断される値
  • 未定義
  • ""(空文字)
  • 0(数値)
  • "0"(文字列)
  • null
  • false
  • array()(空の配列)

 

!emptyと書けば、変数が空じゃないかどうか(=値が入っているかどうか)を確認する処理になる。

 

https://www.php.net/manual/ja/function.empty.php

 

issetとemptyの使い分け

より厳密に変数をチェックしたいならempty、値がnullかどうかを確認したいならissetを使う。

 

is_null

変数がnullかどうかチェックする。変数がnullもしくは未定義であればtrue、そうでなければfalseを返す。

 

https://www.php.net/manual/ja/function.is-null.php

 

表  

!は否定なので、trueとfalseが逆になる。

  isset !isset empty !empty is_null !is_null
未定義 false true true false true false
定義(文字列) true false false true false true
""(空文字列) true false true false false true
0(数値) true false true false false true
0(文字列) true false true false false true
true true false false true false true
false true false true false false true
null false true true false true false
空配列 true false true false false true