1樓:PHP崔雪峰
PHP是變數雖然弱型別語言,但是底層卻是強型別,往往表面上只需要我們簡單定義就可以使用的東西。其實底層實現越複雜比如(ZVAL相關巨集可以為我們省去了初始化變數的過程)但授人以魚不如授人以漁。您可以參考我寫的專欄理解後再思考下問題的答案
PHP底層核心
2樓:張三瘋
empty() 並不會產生警告,哪怕變數並不存在。
當變數存在,並且是乙個非空非零的值時返回 FALSE 否則返回 TRUE。
以下的變數會被認為是空的:
"" (空字串)
0 (作為整數的0)
0.0 (作為浮點數的0)
"0" (作為字串的0)
NULL
FALSE
array() (乙個空陣列)
$var; (乙個宣告了,但是沒有值的變數)
3樓:何來風
如果 $a 未定義
if($a) false 會有警告,if(empty($a)) false
值為0if($a) false ,if(empty($a)) false
4樓:
沒有empty會是隱式轉換。
empty是二值的,也就是只有true和false。
還有就是empty不會有警告。
本質上來說empty的語義比較確定,其他的話隱式轉換你需要記住很多東西。
5樓:我姓陳
$str = '';
echo isset($str) ? 'true' : 'false'; //true
echo !empty($str) ? 'true' : 'false'; //false
$str = 0;
echo isset($str) ? 'true' : 'false'; //true
echo !empty($str) ? 'true' : 'false'; //false
$str = null;
echo isset($str) ? 'true' : 'false'; //false
echo !empty($str) ? 'true' : 'false'; //false
$str = false;
echo isset($str) ? 'true' : 'false'; //true
echo !empty($str) ? 'true' : 'false'; //false
6樓:張云漪
如果$a未定義的話, 會輸出乙個錯誤。即使遮蔽了該錯誤, 因為觸發了PHP的錯誤處理機制, 效能也會大打折扣。
所以如果變數存在未定義的情況, 請使用empty()關鍵字。
注意empty是關鍵字,而不是函式, 所以對效能的消耗非常小,非常划算。
7樓:依池
邏輯運算時,0,0.0,"0",'',null,空陣列等6種常量都會被視為false
empty函式判斷的8種常量0,0.0,'0','',false,null,空陣列,空物件
這兩種電動車有什麼區別?
豬精 這兩種都叫電動自行車,但是第一種才是真正的電動自行車,因為它的外觀最像自行車,而且是真的需要踩著腳踏才能前行的,即使沒電也可以騎。第二種雖然也是電動自行車,但基本騎的時候是用不到腳踏的,可以理解為這種車型是為了符合新國標才誕生的,這種車型如果沒電你就只能推著走了,想像騎單車那樣騎回家?想都不要...
這兩種 NSMutableArray 有什麼區別 ?
Kel Liu 做個簡單測試 intmain int argc const char argv mutableArray arrayOne copy NSLog class of mutableArrayOne is mutableArray class NSLog class of mutable...
hive裡面兩種sql寫法的區別
青牛 你好。都可以,不過還是第一種方法更標準一些,和標準的sql是一致的。hive自身給出的select語法樹是這樣的 WITH CommonTableExpression CommonTableExpression SELECT ALL DISTINCT select expr,select ex...