$isset= isset($test)?"test is define!":"test is undefine!"; echo "isset:$isset/r/n";

$empty=!empty($t " /> 日韩亚洲视频一区二区三区,99精品免费久久久久久久久日本,拔萝卜电视剧高清免费

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

php empty,isset,is_null判斷比較(差異與異同)

一、舉例說明
A.一個變量沒有定義,我們該怎么樣去判斷呢
復制代碼 代碼如下:
<?php
#不存在$test 變量

$isset= isset($test)?"test is define!":"test is undefine!";
echo "isset:$isset/r/n";

$empty=!empty($test)?"test is define!":"test is undefine!";
echo "empty:$empty/r/n";

$is_null=is_null($test)?"test is define!":"test is undefine!";
echo "is_null:$is_null/r/n";

測試結果是:

結果出來了:empty,isset首先都會檢查變量是否存在,然后對變量值進行檢測。而is_null 只是直接檢查變量值,是否為null,因此如果變量未定義就會出現錯誤!

B、看下各自接收的參數是什么?

isset函數參數:

<?php
$test=100;
echo isset($test),isset(100),$isset($b=100);

 

<br />
<b>Parse error</b>:  parse error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or '$' in <b>phpDocument3</b> on line <b>3</b><br />

empty函數參數:

<?php
$test=100;

echo empty($test),empty(100),empty($b=100);

 

<br />
<b>Parse error</b>:  parse error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or '$' in <b>phpDocument3</b> on line <b>3</b><br />

is_null函數參數:

<?php
$test=100;

echo is_null($test),is_null(100),is_null($b=100);

運行結果:沒有任何錯誤。

比較結果出來了:empty,isset輸入參數必須是一個變量(php變量是以$字符開頭的),而is_null輸入參數只要是能夠有返回值就可以。(常量,變量,表達式等)。在php手冊里面,對于他們解析是:empty,isset 是一個語言結構而非函數,因此它無法被變量函數調用。

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

實例:

復制代碼 代碼如下:
<?php
$a=100;
$b="";
$c=null;
//isset檢查
echo "isset","/$a=$a",isset($a)?"define":"undefine","/r/n";
echo "isset","/$b=$b",isset($b)?"define":"undefine","/r/n";
echo "isset","/$c=$c",isset($c)?"define":"undefine","/r/n";
unset($b);
echo "isset","/$b",isset($b)?"define":"undefine","/r/n";
$b=0;
echo "/r/n/r/n";

//empty檢查
echo "empty","/$a=$a",!empty($a)?"no empty":"empty","/r/n";
echo "empty","/$b=$b",!empty($b)?"no empty":"empty","/r/n";
echo "empty","/$c=$c",!empty($c)?"no empty":"empty","/r/n";
unset($b);
echo "empty","/$b",!empty($b)?"no empty":"empty","/r/n";
$b=0;
echo "/r/n/r/n";

//is_null檢查
echo "is_null","/$a=$a",!is_null($a)?"no null":"null","/r/n";
echo "is_null","/$b=$b",!is_null($b)?"no null":"null","/r/n";
echo "is_null","/$c=$c",!is_null($c)?"no null":"null","/r/n";
unset($b);
echo "is_null","/$b",is_null($b)?"no null":"null","/r/n";


通過上面這個簡單測試,我們可以大體知道,當一個變量存在情況下:isset,empty,is_null檢測,得到值情況了。上面沒有舉例更多變量。其實測試發現:

empty

如果 變量 是非空或非零的值,則 empty() 返回 FALSE。換句話說,""、0、"0"、NULL、FALSE、array()、var $var、未定義; 以及沒有任何屬性的對象都將被認為是空的,如果 var 為空,則返回 TRUE。

isset

如果 變量 存在(非NULL)則返回 TRUE,否則返回 FALSE(包括未定義)。變量值設置為:null,返回也是false;unset一個變量后,變量被取消了。注意,isset對于NULL值變量,特殊處理。

is_null

檢測傳入值【值,變量,表達式】是否是null,只有一個變量定義了,且它的值是null,它才返回TRUE . 其它都返回 FALSE 【未定義變量傳入后會出錯!】.


疑問:怎么樣判斷一個變量被設置了,并且值為NULL呢?

通過上面比較,估計大家與我一樣,會有這個問題浮現在腦海里面。 檢測一個變量是否是null 可以用:is_null,但如果變量未定義用它檢測會出錯。因此,我們想到,檢測變量是否定義可以用:isset,但是如果一個變量值是:null, 則它會返回false . 哈哈,這個問題怎么樣解決呢?等待大家分享……

檢查變量存在,并且值為NULL.
復制代碼 代碼如下:
<?php
function checkNull($a)
{
if(array_key_exists($a,$GLOBALS))
{
global $$a;
if(is_null($$a))
return true;
}
return false;
}
$test=null;
var_dump(checkNull("test"));
var_dump(checkNull("test1"));

php技術php empty,isset,is_null判斷比較(差異與異同),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 视频在线观看高清免费看 | 久久亚洲精品AV无码四区 | 在线观看亚洲专区5555 | 国产亚洲精品影视在线 | 国内久久久久影院精品 | 亚洲精品在看在线观看 | 九九99亚洲精品久久久久 | 久久久久99精品成人片三人毛片 | 国产亚洲精品精品国产亚洲综合 | 2022一本久道久久综合狂躁 | 亚洲欧美日韩国产精品26u | 内射气质御姐视频在线播放 | 最新亚洲中文字幕在线观看 | 日韩精品一卡二卡三卡四卡2021 | 秋霞网在线伦理免费 | 日韩欧美一区二区三区免费观看 | 一本色道久久综合亚洲精品 | 韩剧甜性涩爱 | 囯产精品久久久久久久久蜜桃 | 欧美 日韩 无码 有码 在线 | 果冻传媒mv国产陈若瑶主演 | 胸太大被男同桌吃好爽 | 亚洲婷婷天堂综合国产剧情 | 精品日韩欧美一区二区三区 | 99在线免费观看 | 国产99久久久国产精品免费看 | 一个色综合久久 | 菠萝菠萝蜜视频在线看1 | 亚洲涩福利高清在线 | 免费人成视频X8X8国产更快乐 | 22eee在线播放成人免费视频 | 学校女性奴sm训练调教 | 午夜影视免费 | 涩涩网站在线看 | 成人影片大全 | 91九色精品国产免费 | 无人区乱码1区2区3区网站 | 憋尿调教绝望之岛 | 欧美麻豆一精品一AV一免费 | 99精品成人无码A片观看金桔 | 国产精彩视频在线 |