php 如何判斷為空詳解

2021-08-13 05:44:45 字數 1160 閱讀 5461

最近學習php,關於判斷是否為空的疑惑,和記錄分享給你大家。

如果 變數 是非空或非零的值,則 empty() 返回 false。換句話說,」」、0、」0″、null、false、array()、var $var、未定義;以及沒有任何屬性的物件都將被認為是空的,如果 var 為空,則返回 true。

如果 變數 存在(非null)則返回 true,否則返回 false(包括未定義)。變數值設定為:null,返回也是false;unset乙個變數後,變數被取消了。注意,isset對於null值變數,特殊處理。

檢測傳入值【值,變數,表示式】是否是null,只有乙個變數定義了,且它的值是null,它才返回true . 其它都返回 false 【未定義變數傳入後會出錯!】

在有些情況下,推薦使用isset來判斷乙個變數是否為null。

但是從語義上來說,乙個變數」是否已顯示初始化「和」是否為null「是不同的概念,在某些場景下使用isset是不合適的,比如檢查乙個函式的返回值是否為null。

此時可以使用」==」和」===「來判斷它們是否為null。

對於」==」和」===「,它們直接的區別還是很大。對於」==」,它認同空字串,0,false都為null。而對於」===」,只有乙個變數真的為null,它才代表null。

另外」===」相對於」isset」來說,效能基本接近,甚至要好點。

因此綜上述,判斷乙個變數是否為null最好的辦法就是直接使用」===」,這樣就不用在is_null,isset之間猶豫。其實上述的結論也同理於false的判斷。

測試**:

$data = 0;

$data1 = '0';

$data2 = array();

$data3 = null;

$data4 = false;

$data5 = "";

結果:

if (!變數)全部為true

if (isset(變數))全部為true

if (empty(變數))全部為true

if (is_null(變數)) 只有null為true 其他為為false

if (變數==null) 只有'0'為false,其他為true

if (變數===null) 只有null為true,其他false

PHP如何判斷變數為空?

php如何判斷變數為空?這看似很簡單的問題,其實不小心就很容易出錯!一般我們判斷變數為空常用的函式如下 empty var 檢查乙個變數是否為空。如果 var 是非空或非零的值,則empty 返回false。換句話說,0 0 null false array var var 以及沒有任何屬性的物件都...

如何判斷PHP陣列是否為空

php判斷陣列為空首選方法 count arr size arr arr array echo count arr echo size arr 輸出1 arr array echo count arr echo size arr 輸出0 php判斷陣列為空方法2 empty arr arr arra...

為空 判斷 如何判斷環境變數為空

今天在看 spark 的指令碼的時候,發現很多變數都有用到這種格式,如下 if z then spark classpath spark mounted classpath spark classpath fi z很容易理解,在 shell 指令碼裡就是表示後面這個變數是否為空,也做zero的意思。...