PHP プログラミング

【PHP】isset, empty, is_nullの違いと使い方

存在チェックで使われる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空文字値が設定済み
issetfalsefalsefalsetruetrue
emptytruetruetruetruefalse
is_nullエラーエラーtruefalsefalse
  • この記事を書いた人

Usagi

▶︎ 新米エンジニア ▶︎ Usagi Blog 運営 ▶︎ 関西在住 ● 主にプログラミングについての学びを発信中

-PHP, プログラミング