2017-02-16 36 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中,你应该真的使用===,所以错别字会导致==无论如何。

相关问题