0%

isset-is_null-empty

Null是在计算中具有保留的值,用于指示指针不引用有效对象。程序通常使用空指针来表示条件,例如未知长度列表的结尾或未执行某些操作; 这种空指针的使用可以与可空类型和选项类型中的Nothing值进行比较。

  1. 真题

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $a = null;
    $b = 0;
    $c = '';

    var_dump(isset($a)); // bool(false)
    var_dump(isset($b)); // bool(true)
    var_dump(isset($c)); // bool(true)
    var_dump(isset($d)); // bool(false)

    var_dump(is_null($a)); // bool(true)
    var_dump(is_null($b)); // bool(false)
    var_dump(is_null($c)); // bool(false)
    var_dump(is_null($d)); // bool(true)

    var_dump(empty($a)); // bool(true)
    var_dump(empty($b)); // bool(true)
    var_dump(empty($c)); // bool(true)
    var_dump(empty($d)); // bool(true)
  2. 对比

isset()函数为false的情况

  • 变量的值为null
  • 未定义的变量
  • unset()变量之后

is_null函数为true的情况(和isset相反)

  • 变量的值为null
  • 未定义的变量
  • unset()变量后

empty()函数为true的情况

  • 空字符串
  • false
  • 空数组array()
  • NULL
  • 0
  • 浮点数0.0
    • 字符串0.0为false
  • unset之后的变量
  • 字符串0
  • 未定义的变量$var
  • 没有任何属性的对象

unset()函数,变量的值变为NULL

1
2
3
4
5
6
$a = '123';
var_dump($a);// string(3) "123"
unset($a);
var_dump($a);// NULL
var_dump($a === NULL);// bool(true)
var_dump(empty($a)); //bool(true)
  1. 表格
对比项 isset()方法 empty()方法 is_null方法
空字符串”” true ture false
一个空格” “ true false false
FALSE true true false
TRUE true false false
空数组array() true true false
NULL false true true
字符串”0” true true false
整型0 true true false
浮点型0.0 true true false
未定义的变量$a false true true
  1. 综合

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    $a = "";
    $b = " ";
    $c = false;
    $d = true;
    $e = array();
    $f = null;
    $g = 0;
    $h = 0.0;
    $i = "0";

    var_dump(isset($a)); // bool(true)
    var_dump(isset($b)); // bool(true)
    var_dump(isset($c)); // bool(true)
    var_dump(isset($d)); // bool(true)
    var_dump(isset($e)); // bool(true)
    var_dump(isset($f)); // bool(false)
    var_dump(isset($g)); // bool(true)
    var_dump(isset($h)); // bool(true)
    var_dump(isset($i)); // bool(true)
    var_dump(isset($j)); // bool(false)

    var_dump(is_null($a)); // bool(false)
    var_dump(is_null($b)); // bool(false)
    var_dump(is_null($c)); // bool(false)
    var_dump(is_null($d)); // bool(false)
    var_dump(is_null($e)); // bool(false)
    var_dump(is_null($f)); // bool(true)
    var_dump(is_null($g)); // bool(false)
    var_dump(is_null($h)); // bool(false)
    var_dump(is_null($i)); // bool(false)
    var_dump(is_null($j)); // bool(true)

    var_dump(empty($a)); // bool(true)
    var_dump(empty($b)); // bool(false)
    var_dump(empty($c)); // bool(true)
    var_dump(empty($d)); // bool(false)
    var_dump(empty($e)); // bool(true)
    var_dump(empty($f)); // bool(true)
    var_dump(empty($g)); // bool(true)
    var_dump(empty($h)); // bool(true)
    var_dump(empty($i)); // bool(true)
    var_dump(empty($j)); // bool(true)
  2. 特例

    1
    2
    3
    4
    var_dump(empty(0));      // bool(true)
    var_dump(empty('0')); // bool(true)
    var_dump(empty(0.00)); // bool(true)
    var_dump(empty('0.00')); // bool(false) 特殊记忆字符串0.00