官术网_书友最值得收藏!

1.2 emtpy、isset、is_null的區別

變量在所有計算機語言中均有提供,它用來保存數值、文本、對象等內容。我們可以把變量看作一個有名稱的桶,里面放著一個值,這個值可以是數字、字符串或對象,以及包含你想到的任何合法的內容。

PHP提供了3個用于測試變量值的函數,分別是:isset()、empty()和is_null()。這幾個函數均返回布爾值,有時使用不當會造成意想不到的結果,需要詳細說明。

比如,用isset()和empty()返回的結果是相反的,但有時卻并非一直如此,下面我們一起來了解這幾個函數的具體區別。

isset()用來檢測一個變量是否已聲明且值不為NULL。換句話說,只能在變量值不是NULL時返回真值。

empty()用來檢測一個變量是否為空,也就是說有如下情況時返回真值:變量是一個空字符串,false,空數組[array()], NULL,0, ' ',以及被unset刪除后的變量。

提示

在PHP5.5之后,empty()函數可以接受任意類型的表達式。

正確地檢查一個變量是否為空,可使用如下格式:

        if(empty($approve)){
            //etc
        }

這種形式可適用在PHP的任意版本中。如果你用的是PHP5.5以上版本,可以使用如下格式:

        if(empty(0)){
            //etc
        }
        if(empty(CreateNew())){
                  //etc
        }

以上格式在PHP5.5以上版本中均可以使用,如果小于該版本會返回解析錯誤。

is_null()函數用來判斷變量內容是否是NULL值,即返回真值的條件僅為變量是NULL時。值得一提的是,is_null()是isset()函數的反函數,區別是isset()函數可以應用到未知變量,但is_null()只能針對已聲明變量。

我們用一張表格來匯總這些函數返回值的不同之處(表1-1),表中空白表示函數返回布爾值假(false)。

表1-1 測試函數返回值的區別

主站蜘蛛池模板: 翁源县| 邛崃市| 云龙县| 铁岭市| 时尚| 敖汉旗| 萝北县| 房产| 宁夏| 泾川县| 长乐市| 花莲市| 五家渠市| 武冈市| 阳曲县| 新郑市| 桦南县| 长兴县| 偃师市| 资阳市| 苏尼特右旗| 崇仁县| 同德县| 孝义市| 张家口市| 沈丘县| 文昌市| 中山市| 县级市| 韩城市| 密云县| 岱山县| 佛山市| 福清市| 阳曲县| 庆阳市| 多伦县| 西城区| 汾阳市| 和林格尔县| 全南县|