請問php這兩種寫法有什麼區別?

時間 2021-05-06 09:35:03

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...