以前有個問題php echo if two conditions are true,大多數人回答使用語句if(!empty($variable)){}
來檢查一個變量是否爲空,而我的回答是if($variable != ''){}
。我的問題是,爲什麼大多數人回答if(!empty($variable)){}
,if($variable != ''){}
期望可讀性有什麼區別?可讀性是我目前看到的唯一區別。檢查變量是否爲空的兩種不同方法
謝謝, ATNO
以前有個問題php echo if two conditions are true,大多數人回答使用語句if(!empty($variable)){}
來檢查一個變量是否爲空,而我的回答是if($variable != ''){}
。我的問題是,爲什麼大多數人回答if(!empty($variable)){}
,if($variable != ''){}
期望可讀性有什麼區別?可讀性是我目前看到的唯一區別。檢查變量是否爲空的兩種不同方法
謝謝, ATNO
Returns FALSE if var has a non-empty and non-zero value.
The following things are considered to be empty:
* "" (an empty string)
* 0 (0 as an integer)
* 0.0 (0 as a float)
* "0" (0 as a string)
* NULL
* FALSE
* array() (an empty array)
* var $var; (a variable declared, but without a value in a class)
注::
小心,如果 「0」(零作爲字符串),0(零的整數), - O(負零爲一個整數)返回true,「-0」(零作爲一個字符串(是的,我已經有一些客戶將-0寫入表單域))返回false。你需要用空()函數測試它之前投你的變量:
<?php
$var = "-0";
echo empty($var); // returns false
$var = (int) $var; // casts $var as an integer
echo empty($vat); // returns true
?>
@atno更好的方式來自己測試.... – diEcho 2011-05-08 14:27:25
還考慮變量是空的,如果他們是一個0的整數,NULL,FALSE,一個空的陣列(看的返回值)。你只是檢查它是不是一個空字符串。如果變量是例如,則檢查將返回true設置爲(boolean)FALSE。
謝謝,現在明白了:) – afarazit 2011-05-08 14:26:49
同樣對'0'字符串返回true – 2011-05-08 14:37:49
'$ var!='' '和'〜empty($ var)'返回相同的結果。我在什麼地方? '$ var = FALSE; if($ var!='')echo'Not empty'; } else { echo'Empty'; } if(!empty($ var)){ echo'Not empty'; } else { echo'Empty'; } $ var = 0; if($ var!='')echo'Not empty'; } else { echo'Empty'; } if(!empty($ var)){ echo'Not empty'; } else { echo'Empty'; } $ var = TRUE; if($ var!='')echo'Not empty'; } else { echo'Empty'; } if(!empty($ var)){ echo'Not empty'; } else { echo'Empty'; }' – afarazit 2011-05-08 14:58:41
有上如此相似,爲 – diEcho 2011-05-08 14:22:08
剛一說明you..please搜索是很多的問題:要謹慎使用'空() ',它的用途可能太廣泛。例如:如果值爲*,則使用'empty($ _ POST ['number'])''返回true,但實際用戶輸入爲「0」。 – 2011-05-08 14:41:19
我想我會堅持用'!='''現在對我來說似乎是「更安全」 – afarazit 2011-05-09 02:05:05