日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > PHP empty() isset() is_null() 區別與性能比較

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

來源:程序員人生   發布時間:2013-12-31 09:34:40 閱讀次數:3608次

在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"
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产三级香港三韩国三级 | 久久久午夜精品理论片中文字幕 | 精品视频在线免费观看 | 黄色的网站在线观看 | 久久精品三级 | 免费观看污污视频 | 日韩av一区二区三区在线观看 | 国产乱码精品一区二区三区中文 | 在线免费观看亚洲 | 91精品久久久久久久 | 成人在线免费视频观看 | 国产亚洲女人久久久久毛片 | 成人区精品一区二区 | 99精品在线观看视频 | 99国产精品视频免费观看 | 欧美首页| 国产精品一区二区三区久久久 | 久久久免费精品视频 | 国产激情在线观看 | 亚洲h| 久久国产欧美一区二区三区免费 | 欧美三级网站 | 日本视频在线播放 | 国产精品久久久一区二区三区 | 日韩影院在线 | 亚州av一区二区 | 欧美精品日韩精品 | 国产精品18久久久 | 国产精品视频一二三 | 婷婷影视 | 国内精自视频品线六区免费 | 精品一区二区三区四区 | 精品久久久久久久久久久久久久久久久久久 | 精品99久久久久久 | 国产三级在线看 | 久久都是精品 | 伊人干 | 成人天堂 | 亚洲电影在线播放 | 国产精品一区二区三区久久久 | 国产日韩一区二区 |