2017-02-16 59 views
3

我看了很多次,PHP開發人員使用的財產以後這樣的:PHP - 哪一個是更好的方法空==或== NULL

if(null == $var){ 

} 

,而我用

if($var == null){ 

} 

這些是兩個不同的?有什麼理由使用每一個?或者它在任何方面都是選擇問題?

+1

'$ var == null'是標準的方式..兩者沒有什麼區別。它的正義標準,我們總是在正確的 –

+2

中寫下價值。第一個優點是,如果出現像'(null = $ var)'這樣的意外錯字會導致語法錯誤,否則會造成混淆。 – arkascha

+3

@MASIDDIQUI我堅決不同意。 – arkascha

回答

5

只是null不能被賦值 null = $a,它會拋出解析錯誤。

但任何變量具有如null值。 $a = null

所以,如果你在第二種情況下錯誤地輸入到===,你已經改變了$a價值和您檢查$a新的值總是爲假的,如果條件。

+0

@bub我知道,但這就是它的原因,它來自C世界和嵌入式系統,在這些系統中調試非常困難.. 所以它的老用於防禦技術,以避免模糊比較與分配 –

2

簡短的回答,這是完全一樣的東西。龍回答:

C編程語言允許條件內分配。例如

(i = 1)==1是有效的。這意味着:

if (x = null) 

也是有效的。

在某些情況下,你打算爲x = NULL但是(通常)你只是爲了比較x == null和輸錯的。

在C(或C++),因此開發商會做這樣的事情:

if (null == x) 

這是因爲如果輸入錯誤,以if (null = x)它不會編譯。

然而,在PHP中,這已經不再是一個有效的理由,因爲PHP不編譯因此這樣的錯誤不提前困,這違背了逆轉語法的全部目的。

然而,在PHP中使用它的好處是,當你打的那部分代碼,這反而出錯正常運行的,因此會通知你的問題。

另一方面,在PHP中,你應該真的使用===,所以錯別字會導致==無論如何。