日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php is_null(,PHP empty() isset() is_null() 区别与性能比较

發布時間:2023/12/15 php 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php is_null(,PHP empty() isset() is_null() 区别与性能比较 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在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() 等,比較有局限性,都沒什么好說的,測試的類型如下:

$a;

$b=?false;

$c='';

$d=?0;

$e=?null;

$f=array();

?>

empty()

首先是empty的var_dump輸出:

var_dump(emptyempty($a));

var_dump(emptyempty($b));

var_dump(emptyempty($c));

var_dump(emptyempty($d));

var_dump(emptyempty($e));

var_dump(emptyempty($f));

?>

/*

程序輸出為:

bool(true)

bool(true)

bool(true)

bool(true)

bool(true)

bool(true)

*/

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

isset()

再看看isset的輸出:

var_dump(isset($a));

var_dump(isset($b));

var_dump(isset($c));

var_dump(isset($d));

var_dump(isset($e));

var_dump(isset($f));

/*?輸出

bool(false)

bool(true)

bool(true)

bool(true)

bool(false)

bool(true)

*/

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

is_null()

最后是is_null的輸出:

var_dump(is_null($a));

var_dump(is_null($b));

var_dump(is_null($c));

var_dump(is_null($d));

var_dump(is_null($e));

var_dump(is_null($f));

/*輸出

bool(true)

bool(false)

bool(false)

bool(false)

bool(true)

bool(false)

*/

is_null 字面意思了。

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

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

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

$a=100;

$b="";

$c=null;

//isset檢查

echo"isset","$a=$a",isset($a)?"define":"undefine","rn";

echo"isset","$b=$b",isset($b)?"define":"undefine","rn";

echo"isset","$c=$c",isset($c)?"define":"undefine","rn";

unset($b);

echo"isset","$b",isset($b)?"define":"undefine","rn";

$b=0;

echo"rnrn";

//empty檢查

echo"empty","$a=$a",!emptyempty($a)?"no?empty":"empty","rn";

echo"empty","$b=$b",!emptyempty($b)?"no?empty":"empty","rn";

echo"empty","$c=$c",!emptyempty($c)?"no?empty":"empty","rn";

unset($b);

echo"empty","$b",!emptyempty($b)?"no?empty":"empty","rn";

$b=0;

echo"rnrn";

//is_null檢查

echo"is_null","$a=$a",!is_null($a)?"no?null":"null","rn";

echo"is_null","$b=$b",!is_null($b)?"no?null":"null","rn";

echo"is_null","$c=$c",!is_null($c)?"no?null":"null","rn";

unset($b);

echo"is_null","$b",is_null($b)?"no?null":"null","rn";

(責任編輯:admin)

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的php is_null(,PHP empty() isset() is_null() 区别与性能比较的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。