PHP メモ:変数チェック
PHPで変数をチェックする方法についてメモしていきます。
もし間違っていた場合、指摘していただけるとありがたいです。
変数をチェックする理由
エラーが表示されるように設定してあると、宣言していない変数を呼び出したときエラーになる。→ Notice :undefined variable
var_dumpで未定義の変数の中身を調べると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 |