站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        淺談PHP中isset()、empty()、is_null()的區(qū)別

        在PHP中,isset()、empty()和is_null()都可用于測試變量的值,那么它們之間有什么差異呢?下面本篇文章就來對比一下這三個函數(shù),了解一下它們的區(qū)別。

        淺談PHP中isset()、empty()、is_null()的區(qū)別

        讓我們從一些定義開始。

        • isset() : 你可以用isset() 來確定一個變量是否被聲明,并且與null 不同。

        • empty() : 它用于確定變量是否存在,并且變量的值沒有評估為false

        • is_null() : 這個函數(shù)用來檢查一個變量是否是null

        PHP isset() vs empty()

        正如我們從定義中看到的,如果我們之前定義了該變量并將其值設(shè)置為NULL 以外的值,那么isset() 將返回true 。這可以包括0 ,一個空字符串或false 。另一方面,只要變量的值被設(shè)置為falseempty() 就會返回true ,我們稱這些值為 "假值"。錯誤值的例子包括:0 ,空字符串"" 和字符串"0" ,空數(shù)組NULL ,當(dāng)然還有布爾值false

        isset()empty() 之間的一個相似之處是,它們都是語言結(jié)構(gòu),因此不能使用變量函數(shù)來調(diào)用。

        下面的代碼片斷應(yīng)該可以解釋這兩者之間的區(qū)別。

        <?php  $fruit = '';  if(isset($fruit)) {     echo 'Do you like '.$fruit.'?'; } // Output:  Do you like ?  if(!empty($fruit)) {     echo 'Do you like '.$fruit.'?'; } // No Output  ?>

        請注意,empty() 可以使用isset() 函數(shù)來編寫。

        <?php  function my_empty($x) {   return !isset($x) || $x == false }

        當(dāng)然,通常只是使用內(nèi)置的empty() 函數(shù)更容易。

        PHP isset() vs is_null()

        如果一個變量的值被明確地設(shè)置為NULL ,則is_null() 函數(shù)返回true 。否則,它只是返回false 。另一方面,只要定義了一個變量,并且其值不是NULLisset() 將返回true

        下面是一個基本的例子來說明它們之間的區(qū)別。

        <?php  $fruit = NULL;  if(isset($fruit)) {     echo 'Do you like '.$fruit.'?'; } // No Output  if(is_null($fruit)) {     echo 'There is no fruit.'; } // Output: There is no fruit.  ?>

        PHP empty() vs is_null()

        如果一個變量的值被評估為falseempty() 函數(shù)將返回true 。這可能意味著空字符串,NULL ,整數(shù)0 ,或一個沒有元素的數(shù)組。另一方面,只有當(dāng)變量的值為NULLis_null() 才會返回true

        下面是一個基本的例子來說明它們之間的區(qū)別。

        <?php  $fruit = NULL;  if(isset($fruit)) {     echo 'Do you like '.$fruit.'?'; } // No Output  if(is_null($fruit)) {     echo 'There is no fruit.'; } // Output: There is no fruit.  ?>

        需要記住的重要事項

        有兩個提示,你可以用來編寫更簡潔的代碼,并在將來避免錯誤。

        1.與empty()is_null() 不同,你可以一次傳遞多個值給isset() ,以同時檢查其中是否有未定義或設(shè)置為NULL 。在這種情況下,isset() ,只有在傳遞的值都不是NULL ,才會返回true

        2.2. 不要使用== 來檢查一個值是否是NULL 。這將會給像空字符串這樣的評估為false 的值帶來錯誤的肯定。

        推薦學(xué)習(xí):《PHP視頻教程》

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 秋霞午夜鲁丝片午夜精品久| 国产精品单位女同事在线| 久久亚洲欧美日本精品| 日本精品一区二区三区四区| 久久这里只有精品首页| 久久久久久九九99精品| 日韩精品无码Av一区二区| 91精品国产福利在线观看| 国产精品亚洲一区二区三区在线 | 成人免费精品网站在线观看影片| 亚洲av永久无码精品漫画| 精品露脸国产偷人在视频| 欧美一卡2卡3卡四卡海外精品| 国产精品久久久久久吹潮| 亚洲国产一二三精品无码| 亚洲国产成人久久精品99| 久久久久久久久久免免费精品 | 精品视频在线v| 久久精品a亚洲国产v高清不卡| 香蕉国产精品麻豆亚洲欧美日韩精品自拍欧美v国 | 国内精品久久国产大陆| 奇米影视7777久久精品| 久夜色精品国产一区二区三区| 99精品久久久久久久婷婷| 精品一区二区久久久久久久网站| 国产亚洲欧美精品永久| 久久亚洲精品成人AV| 日产精品久久久久久久| 日韩精品无码熟人妻视频| 日韩精品无码一本二本三本| 嫖妓丰满肥熟妇在线精品| 亚洲国产精品无码一线岛国| 亚洲日韩精品一区二区三区| 中文字幕无码久久精品青草| 自拍偷自拍亚洲精品情侣| 在线观看亚洲精品福利片 | 亚洲精品乱码久久久久久久久久久久 | 国产精品福利片免费看| 在线欧美v日韩v国产精品v| 麻豆精品久久久一区二区| 中文精品一卡2卡3卡4卡|