咱们在作判断的时候常常用到is_null、is_bool、empty、is_set等判断函数,可是这么多的判断函数到底用哪个,他们之间有什么区别吗,可能不少人php老鸟说到这里也有点含糊,如今咱们就一一来讨论它们。php
is_null、is_bool:何时用这样的函数呢?is_null,is_bool,这里的is我么能够解释为“是否是”,是否是null,是否是bool呢?这样我么就容易理解这样的函数了,所以咱们只须要明白nill的定义是什么,bool的定义是什么,下面的这些状况是被php看做是null的:数组
1:被赋值为 NULL函数
如:spa
$a =NULL; echo is_null($a); //output 1
2:还没有被赋值code
如:字符串
$a; echo is_null($a); //output 1
3:被 unset()string
如:io
$a =”string”; unset($a); echo is_null($a)//output 1
上面的这三种状况是被php认为是null的,因此就会输出真了1class
为bool的状况就只有一种,就是当变量的值是true或false,不区分大小写变量
如:
$a =true; echo is_bool($a);//output 1
注意:若是所给的变量不是布尔类型,那么什么也不会输出,只有是布尔类型的时候才会输出true,仅此一个值。若是$a的值是0或者1,他们不是布尔类型,什么也不会输出,不要混淆了这点。
除了is_null is_bool 外还有不少相似的函数 is_float is_int is_string 等函数,分析和上面分析相同。
empty:
empty的用法相信你们都很熟悉,下面说下,什么状况下empty($var)会输出true
1:变量的值为空 $var = “”;
2:变量的值为字符串0或者数字0 $var = 0 ; 或者$var =”0″
3:变量的值为flase $var= flase;
4:凡是为NULL的 都为空 为null的状况我上面已经讲过了 这里再也不重复
5:空数组 $arr =array();
6:变量只定义不赋值 $var;
若是知足上面的一条那么empty就会输出true,empty在php中很重要,它对于咱们程序的严谨性多了一层保证。
isset
不少人对于isset和empty的区别不是很明白,或者比较模糊,其实empty的做用能力比isset强,怎么这样说呢?假若有一个变量,咱们前面没有定义,就直接来使用
isset($var);//there is a quertion here! empty($var);//output 1
isset常常用于判断unset的变量,若是一个变量被unset了,那么能够用isset来判断
不少细节问题 还须要修改.