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來判斷

不少細節問題 還須要修改.

相關文章
相關標籤/搜索