is_null、is_bool、empty、isset的区别

咱们在作判断的时候常常用到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来判断

不少细节问题 还须要修改.

相关文章
相关标签/搜索