# PHP empty isset is_null の違い

!!($var) isset($var) empty($var) is_null($var)
$var = 1 true true false false
$var = "0" false true true false
$var = 0 false true true false
$var = "" false true true false
$var = NULL false false true true
$var = array() false true true false
$var = array(1) true true false false
$var = (object)[] true true false false
$var = (object)[1] true true false false
$var = 1;
var_dump(!!($var));         // true
var_dump(isset($var));      // true
var_dump(empty($var));      // false
var_dump(is_null($var));    // false

$var = [];
var_dump(!!($var));         // false
var_dump(isset($var));      // true
var_dump(empty($var));      // true
var_dump(is_null($var));    // false

$var = (object)[];
var_dump(!!($var));         // true
var_dump(isset($var));      // true
var_dump(empty($var));      // false
var_dump(is_null($var));    // false

文字列と数値を比較

php7 は文字列を数値に変換してから比較
php8 は数値を文字列に変換してから比較

比較 PHP7 PHP8
0 == "0" true true
0 == "0.0" true true
42 == "42" true true
0 == "foo" true false
0 == "" true false
42 == "42foo" true false
"0" == "0" true true
"0" == "0.0" true true
"0" == "foo" false false
"0" == "" false false
"42" == "42" true true
"42" == "42foo" false false

# isset

isset — 変数が宣言されていること、そして null とは異なることを検査する

つまりNULLではなければ、すべて true で返します。
isset 複数チェックする場合、AND として扱う





 

$a = "a";
$b = NULL;

var_dump(isset($a));        // true
var_dump(isset($a, $b));    // false

# empty

empty — 変数がであるかどうかを検査する

var が存在し、かつその値が 0 false でなければ、false を返します。

  • 変数が存在しない場合でも警告しません
  • empty()!isset($var) || $var == false と同じ

empty()と isset()の違い

empty() は isset() より値が false かどうかをチェック

# is_null

is_null — 変数が null かどうか調べる

var が 宣言なしと null の場合に true、 それ以外の場合に false を返します。

# PHP isset, empty, is_null の違い早見表

if($var) isset empty is_null
$var=1 true true false false
$var="" false true true false
$var="0" false true true false
$var=0 false true true false
$var=NULL false false true true
$var false false true true
$var=array() false true true false
$var=array(1) true true false false
2020-12-10
  • php

同じタグを持つ記事をピックアップしました。