溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

關(guān)于PHP的isset()、is_null、empty()的使用介紹

發(fā)布時(shí)間:2020-05-27 14:55:21 來(lái)源:億速云 閱讀:207 作者:PHP專家 欄目:編程語(yǔ)言

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本預(yù)處理器”)是一種通用開(kāi)源腳本語(yǔ)言。語(yǔ)法吸收了C語(yǔ)言、Java和Perl的特點(diǎn),利于學(xué)習(xí),使用廣泛,主要適用于Web開(kāi)發(fā)領(lǐng)域。PHP 獨(dú)特的語(yǔ)法混合了C、Java、Perl以及PHP自創(chuàng)的語(yǔ)法。它可以比CGI或者Perl更快速地執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè)。

isset()、is_null、empty()這幾個(gè)變量判斷函數(shù)在PHP開(kāi)發(fā)中用的其實(shí)挺多的,而且粗看上去都差不多,但其實(shí)還是有不少的區(qū)別的,如果搞不清楚,也許就會(huì)遺留一些潛在的bug, 包括我自已也遇到過(guò)這樣的坑,比如有一次我就遇到過(guò)用empty判斷出現(xiàn)的問(wèn)題,前端是允許輸入0的,但是我用empty判斷的話就為真,我就直接給報(bào)錯(cuò)了,所以這里就不能用這個(gè)判斷了。

我們先看下這幾個(gè)函數(shù)具體的用途

isset — 檢測(cè)變量是否已設(shè)置并且非 NULL

empty — 檢查一個(gè)變量是否為空,以下的東西都被認(rèn)作空

"" (空字符串)

0 (作為整數(shù)的0)

0.0 (作為浮點(diǎn)數(shù)的0)

"0" (作為字符串的0)

NULL

FALSE

array() (一個(gè)空數(shù)組)

$var; (一個(gè)聲明了,但是沒(méi)有值的變量)

is_null — 檢測(cè)變量是否為 NULL

一 isset

判斷變量有無(wú)先定義,數(shù)組的鍵值有無(wú)存在等

<?php
$data=[""," ", 0, 0.0 ,"0", null, "null", true, false ,[]];
foreach ($data as $key => $val){
    echo $key . '=>' . var_dump(isset($val)) . "\r\n";
}
//以上輸出只有 null返回false,其它都為真
$arr = ['name' =>'lc', 'age' => 22, 'address' =>null];
echo isset($arr['name']) . "\r\n";  //true
echo isset($arr['mobile'])."\r\n";  //false
echo isset($arr['address']) ."\r\n"; //false
//未定義的鍵和值為null,返回false

empty

$data=[""," ", 0, 0.0 ,"0", null, "null", true, false ,[]];
foreach ($data as $key => $val){
    echo $key . '=>' . var_dump(empty($val)) . "\r\n";
}
//以上輸出 '" "',"null",true等為false,其它為true
is_null
$data=[""," ", 0, 0.0 ,"0", null, "null", true, false ,[]];
foreach ($data as $key => $val){
    echo $key . '=>' . var_dump(is_null($val)) . "\r\n";
}
//以上輸出 null 為true,其它全為false

另外,PHP7有一個(gè)快捷判斷的方式就是 ??和 ?:語(yǔ)法,這個(gè)也要多注意下

$a ?? 0; //相當(dāng)于isset($a);
$a ?: 0; //相當(dāng)于!empty($a);

通過(guò)上面的示例,應(yīng)該了解這幾個(gè)的差異了,在開(kāi)發(fā)的時(shí)候我們只要多注意下,就能選擇合適的判判函數(shù)了。

結(jié)論

isset:非 null的都為true.

empty: "" , 0 ,0.0,"0",null,false,array(),未定義var都為true.

is_null:值為null為true.

以上就是關(guān)于PHP的isset()、is_null、empty()的使用介紹的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注億速云其它相關(guān)文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI