麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > PHP > 正文

PHP empty() isset() is_null() 區別與性能比較

2024-09-04 11:48:11
字體:
來源:轉載
供稿:網友

在php中empty() isset() is_null()三個函數都是判斷是否為空的情況,但是如果我個要具體的深入去了解這個三個函數發現還是有許多的區別.

is_null(), empty(), isset(),這幾個函數以及 == ”,== array() 會在實際操作中經常用到,因為功能很類似,可能會忽視了他們的區別,一不小心就會給工作帶來很大的麻煩,下面將這幾種結構列出來,供自己和大家參考,鑒于表述的準確性,部分解釋來自英文原版手冊,避免中文手冊的更新不及時以及翻譯不當等問題。

is_null()

is_null(),bool,當參數滿足 null 的三種情況時,is_null() 將返回 TRUE。

null類型,以下情況將被認定為 NULL:

it has been assigned the constant NULL.

it has not been set to any value yet.

it has been unset().

source:http://cn2.php.net/manual/en/language.types.null.php

isset()

isset(),bool,用于判定參數是否被設定并且不是 NULL。參數只能是變量。

如果沒有設置變量,或者變量被 unset() 掉,或者變量值為 NULL ,返回 FALSE,其它情況返回 TRUE。即如果不是 NULL 就屬于 isset 的范疇了,這一點和 is_null() 函數正好相反。

如果傳遞多個參數,將取交集。即所有參數全部符合 isset() 時才返回 TRUE。

ps:defined(),bool,用于檢查常量是否被設置。

source:http://cn2.php.net/manual/en/function.isset.php

empty()

empty(),bool,主要用于判斷變量是否為空,參數只能是變量。

如下情況將被判定位空,代碼如下:

“” (an empty string)

0 (0 as an integer)

0.0 (0 as a float)

“0″ (0 as a string)

NULL

FALSE

array() (an empty array)

var $var; (a variable declared, but without a value in a class)

注:如果參數是未設置的變量,變量將被認定為 NULL,不會報錯,返回 TRUE。

但是注意在 5.0.0 之后,Objects with no properties are no longer considered empty.

source:http://cn2.php.net/manual/en/function.empty.php

判定是否為空的方式還有 ==”,== array() 等,比較有局限性,都沒什么好說的,測試的類型如下:

  1. <?php 
  2. $a
  3. $b = false; 
  4. $c = ''
  5. $d = 0; 
  6. $e = null; 
  7. $f = array(); 
  8. ?> 

empty()

首先是empty的var_dump輸出:

  1. <?php 
  2. var_dump(emptyempty($a)); 
  3. var_dump(emptyempty($b)); 
  4. var_dump(emptyempty($c)); 
  5. var_dump(emptyempty($d)); 
  6. var_dump(emptyempty($e)); 
  7. var_dump(emptyempty($f)); 
  8. ?> 
  9. /* 
  10. 程序輸出為: 
  11. bool(true) 
  12. bool(true) 
  13. bool(true) 
  14. bool(true) 
  15. bool(true) 
  16. bool(true) 
  17. */ 

從代碼中可以看出,只要數據類型是否為空或假,empty()就輸出true。

isset()

再看看isset的輸出:

  1. var_dump(isset($a)); 
  2. var_dump(isset($b)); 
  3. var_dump(isset($c)); 
  4. var_dump(isset($d)); 
  5. var_dump(isset($e)); 
  6. var_dump(isset($f)); 
  7. /* 輸出 
  8. bool(false) 
  9. bool(true) 
  10. bool(true) 
  11. bool(true) 
  12. bool(false) 
  13. bool(true) 
  14. */ 

可以看出isset()只能用來判斷是否為NULL和未定義。

is_null()

最后是is_null的輸出:

  1. var_dump(is_null($a)); 
  2. var_dump(is_null($b)); 
  3. var_dump(is_null($c)); 
  4. var_dump(is_null($d)); 
  5. var_dump(is_null($e)); 
  6. var_dump(is_null($f)); 
  7. /*輸出 
  8. bool(true) 
  9. bool(false) 
  10. bool(false) 
  11. bool(false) 
  12. bool(true) 
  13. bool(false) 
  14. */ 

is_null 字面意思了。

由此可見 empty() 可以用來判定所有的數據類型是否為空或假,而 is_null 與 isset 基本一樣,只能用來判斷是否為NULL和未定義。

概括總結isset,empty,is_null區別:

剛才介紹的:檢查變量,以及參數類型,這個是這3個函數不同之處的基礎,也是最容易被忽視的,看到網上有很多對這個3個函數進行比較文章,很少涉及這些,下面我要說的,是在都檢查已存在變量情況下,不同之處,代碼如下:

  1. <?php 
  2. $a=100; 
  3. $b=""
  4. $c=null; 
  5. //isset檢查 
  6. echo "isset","$a=$a",isset($a)?"define":"undefine","rn"
  7. echo "isset","$b=$b",isset($b)?"define":"undefine","rn"
  8. echo "isset","$c=$c",isset($c)?"define":"undefine","rn"
  9. unset($b); 
  10. echo "isset","$b",isset($b)?"define":"undefine","rn"
  11. $b=0; 
  12. echo "rnrn"
  13. //empty檢查 
  14. echo "empty","$a=$a",!emptyempty($a)?"no empty":"empty","rn"
  15. echo "empty","$b=$b",!emptyempty($b)?"no empty":"empty","rn"
  16. echo "empty","$c=$c",!emptyempty($c)?"no empty":"empty","rn"
  17. unset($b); 
  18. echo "empty","$b",!emptyempty($b)?"no empty":"empty","rn"
  19. $b=0; 
  20. echo "rnrn"
  21. //is_null檢查 
  22. echo "is_null","$a=$a",!is_null($a)?"no null":"null","rn"
  23. echo "is_null","$b=$b",!is_null($b)?"no null":"null","rn"
  24. echo "is_null","$c=$c",!is_null($c)?"no null":"null","rn"
  25. unset($b); 
  26. echo "is_null","$b",is_null($b)?"no null":"null","rn"

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费一级a毛片在线播放视 日日草夜夜操 | 欧美成人免费一区二区三区 | 九九热在线视频免费观看 | 成人国产精品一区 | 亚洲视频成人 | 黄污在线观看 | 成人午夜视频在线观看 | 精品久久久久99 | 真人一级毛片免费 | 特级无码毛片免费视频尤物 | 国产超碰人人做人人爱ⅴa 国产精品久久久久久久hd | 成人在线视频在线观看 | 欧美日穴视频 | 久久久99精品视频 | av免费在线网| 激情亚洲网 | 免费黄色入口 | 逼特逼视频在线观看 | 福利免费在线观看 | a级在线 | 免费黄色一级网站 | 中国hd高清xxxxvideo | 免费在线观看成年人视频 | china对白普通话xxxx | 国产亚洲在 | www.91sp| 草草视频在线播放 | 亚洲黑人在线观看 | 毛片免费视频播放 | 久久久久久久亚洲精品 | 久久男人天堂 | 久久成人福利 | 日韩黄色免费在线观看 | 一级毛片真人免费播放视频 | 欧美一级特黄aaaaaaa什 | avav在线播放 | 高清在线国产 | 日韩视频一区在线 | 毛片a级毛片免费播放100 | 一级黄色影片在线观看 | 精品国产一级毛片 |