1. 关于empty
1.判断一个变量是否为空,注意这个”空“,null,0,false。都属于空
实际上,当值为0的时候,咋能认为他是“空”呢?
以下的情况将被考虑为空
* 0 (0 as an integer)
* 0.0 (0 as a float)
* "0" (0 as a string)
* NULL
* FALSE
* array() (an empty array)
* $var; (a variable declared, but without a value)
* "" (an empty string)
实例代码:
$a = false;
if(empty($a))
echo "空";
else
echo "不空";
result: 空
2. 关于isset
1.只有被赋值为
null
,或者被unset
的时候,才会返回false
,否则都是被设置的
3. 小总结
帮助记忆
- 1.当要 判断一个变量
是否已经声明
的时候可以使用isset
函数- 2.当要 判断一个变量
是否已经赋予数据且不为空
可以使用empty
函数3.当要 判断一个变量
存在且不为空
先isset
函数判断再用empty
函数判断isset(订金)
- empty(合同) 形象一点就是
先有订金再有合同
关于性能
- 1.对于数组,isset的性能要高于
array_key_exists
所以,如果数组比较大,我们应该用如下方法保证性能和准确性
$arr = array('a'=>null, 'b'=>'b');
#因为array_key_exists函数当数组比较大的时候会很消耗资源,所以前面先加一个isset判断减小资源消耗(isset不能判断$arr['a']存在,所以在交给array_key_exists来进一步判断)
if (isset($arr['a']) || array_key_exists('a', $arr)) {
echo 'yes'; # code...
} else {
echo 'no'; # code...
}