PHP 真值与空值
本文参考 http://php.net/manual/en/types.comparisons.php。
1. isset
bool isset ( mixed $var [, mixed $... ] )
Determine if a variable is set and is not NULL.
变量值被设置,而且其值不为 NULL,那么就会返回 true。
另外这个函数可以被用来检查数组中的元素是否存在且值不为 NULL。
2. empty
bool empty ( mixed $var )
A variable is considered empty if it does not exist or if its value equals FALSE. empty() does not generate a warning if the variable does not exist.
变量不存在或者其值为 FALSE,empty 函数都返回真。另外 empty 只能处理变量,无法处理表达式的结果。
3. PHP 中一些奇怪的值【背下来】
1 $x = ''; // 为 false 2 $x = null; // 没有值,没有类型,为 false 3 var $x; // 没有值,没有类型,为 false 4 $x is undefined; // 没有值,没有类型,为 false 5 $x = array(); // 为 false 6 $x = false; // 为 false 7 $x = 0; // 为 false 8 $x = '0'; // 为 false 9 $x = 'false' // 为 true
上面这些值得真值测试都是 loose comparison。