存在チェックで使われるisset
, empty
, is_null
の違いと使い方についてまとめます。
isset
isset関数は変数にnull以外の値が設定されているかをチェックします。
変数にnull以外の値が設定されている場合はtrueを、それ以外の場合はfalseを返します。
$result1 = isset($num);
var_dump((bool) $result1);
// false
$num;
$result2 = isset($num);
var_dump((bool) $result2);
// false
$num = null;
$result3 = isset($num);
var_dump((bool) $result3);
// false
$num = '';
$result4 = isset($num);
var_dump((bool) $result4);
// true
$num = 1;
$result5 = isset($num);
var_dump((bool) $result5);
// true
empty
empty関数は変数が空であるかどうかをチェックします。
変数が存在しない場合や変数がnullの場合はtrueを、変数に値が設定されている場合にfalseを返します。
$result1 = empty($num);
var_dump((bool) $result1);
// true
$num;
$result2 = empty($num);
var_dump((bool) $result2);
// true
$num = null;
$result3 = empty($num);
var_dump((bool) $result3);
// true
$num = '';
$result4 = empty($num);
var_dump((bool) $result4);
// true
$num = 1;
$result5 = empty($num);
var_dump((bool) $result5);
// false
is_null
is_null関数は変数がnullであるかどうかをチェックします。
変数がnullの場合にtrue、変数に値が設定されている場合にfalseを返します。
なお、変数が存在しなかったり、値が設定されていない場合はエラーを返します。
$result1 = is_null($num);
// Undefined variable $num
$num;
$result2 = is_null($num);
// Undefined variable $num
$num = null;
$result3 = is_null($num);
var_dump((bool) $result3);
// true
$num = '';
$result4 = is_null($num);
var_dump((bool) $result4);
// false
$num = 1;
$result5 = is_null($num);
var_dump((bool) $result5);
// false
まとめ
それぞれの動作結果まとめです。
未定義 | 宣言のみ | null | 空文字 | 値が設定済み | |
---|---|---|---|---|---|
isset | false | false | false | true | true |
empty | true | true | true | true | false |
is_null | エラー | エラー | true | false | false |