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
测试一下:
1 $a = ''; 2 var_dump(isset($a)); 3 echo "</br>"; 4 unset($a); 5 var_dump($a); 6 echo "</br>"; 7 $b = null; 8 var_dump(isset($b));
运行结果如下: