php内置了很多对变量进行判断的方式,有几种常用的方式的判断结果容易混淆
isset
isset是当且仅当变量为NULL才会返回false,否则返回true,与is_null()完全相反
有三种情况下变量为NULL
1. 赋值为NULL
2. 未被赋值
3. unset()
isset和is_null还是有区别的:isset是语句,is_null是函数,有关语句和函数的区别会另外介绍
empty
empty对以下几个特殊值的判断结果:
1. 数值型(int,float)0 返回true,非0返回false
2. String '' 返回true(注意'0'同样返回true)
3. 布尔类型false 返回true
4. 空数组[]返回true, [[]]返回false
5. NULL返回true
直接判断
所谓直接判断就是类似于这样if($var)
这种判断方式在判断时会将变量$var强制转换为布尔型,所以只要参照强制转换的结果就行了
1. '' => false
2. '0' => false
3. 0 => false
4. null => false
5. [] => false
需要注意的是:直接判断时,若变量未定义,会报一个notice的错误
php记录notice也是需要消耗性能的,所以不推荐这样的用法