最近學習php,關於判斷是否為空的疑惑,和記錄分享給你大家。
empty
如果 變數 是非空或非零的值,則 empty() 傳回 FALSE。換句話說,」」、0、」0″、NULL、FALSE、array()、var $var、未定義;以及沒有任何屬性的物件都將被視為空的,如果var 為空,則傳回TRUE 。 (推薦學習:PHP程式設計從入門到精通)
如果e是未定義或值為NULLL,e是未定義或值為NULLL,e=NULL,它肯定是空,即empty($e)=true;
如果e是int型,e是int型,e=0,就相對於數字,0代表為零,即empty($e)=true;
如果e是string類型,e是string類型,e=”“,相對於字串,”“就代表為是空,即empty($e)=true;
如果e是string類型,e是string類型,e=”0”,相對於字串,”0“就代表為是零,即empty($e)=true;
如果e是bool型,e是bool型,e=false,相對true,false代表為空,即empty($e)=true;
如果e是array型,e是array型,a=array( ),相對數組來說,沒有元素的資料就為空,即empty($e)=true;
#isset
如果變數存在(非NULL)則傳回TRUE,否則回傳FALSE(包括未定義)。變數值設定為:null,返回也是false;unset一個變數後,變數被取消了。注意,isset對於NULL值變量,特殊處理。
is_null
偵測傳入值【值,變數,表達式】是否是null,只有一個變數定義了,且它的值是null,它才回傳TRUE .其它都回傳FALSE 【未定義變數傳入後會出錯! 】
在某些情況下,建議使用isset來判斷一個變數是否為NULL。
但是從語意上來說,一個變數」是否已顯示初始化「和」是否為NULL「是不同的概念,在某些場景下使用isset是不合適的,例如檢查一個函數的回傳值是否為NULL。
此時可以使用”==”和”===“來判斷它們是否為NULL。
對於”==”和”===“,它們直接的區別還是很大。對於”==”,它認同空字串,0,false都為NULL。而對於”===”,只有變數真的是NULL,它才會代表NULL。
另外”===”相對於”isset”來說,性能基本上接近,甚至要好點。
因此綜上述,判斷變數是否為NULL最好的辦法就是直接使用”===”,這樣就不用在is_null,isset之間猶豫。其實上述的結論也同理於False的判斷。
以上是php判斷值是否為空的詳細內容。更多資訊請關注PHP中文網其他相關文章!