PHP null常量和null字节的区别

在学习isset()时,看到了这句话:“如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节(”\0″)并不等同于 PHP 的 NULL 常数”。那么问题来了,什么是NULL字节(“\0”)? 它和NULL常数有什么区别呢??

  NULL 字节是变量为空 $t = ”; 变量有值,不过是空,isset()是TRUE
  NULL 常数是$t=null; 变量没有值,没有分配存储空间,isset()是FALSE
测试一下:

$a = '';
    var_dump(isset($a));
    echo "</br>";
    unset($a);
    var_dump($a);
    echo "</br>";
    $b = null;
    var_dump(isset($b));

运行结果如下:
boolean true
null
boolean false

发表评论