我经常看到 PHP 开发者使用类似以下代码:
if(null == $var){
}
当我使用时
if($var == null){
}
这两个是不同的吗?有没有理由使用每一个?还是在任何情况下都只是个人选择的问题?
仅仅使用null
不能被赋值null = $a
,这会导致解析错误。
但是任何变量都可以拥有null
作为它的值。$a = null
因此,如果你在第二种情况中将==
误输入为=
,你已经改变了$a
的值,并且你检查了新值的if条件,该值始终计算为false。
(i = 1)==1
是有效的。这意味着:if (x = null)
同样是有效的。
在某些情况下,您可能打算将x赋值为null,但(最常见的情况)您只是想比较x == null
并且输错了。
因此,在C(或C ++)中,开发人员会执行以下操作:
if (null == x)
if (null = x)
,它将不能编译。但在PHP中,这不再是一个有效的理由,因为PHP不是编译型语言,所以此类错误无法及早捕获,这就破坏了反向语法的整个目的。然而,在PHP中使用它的优点是,当您遇到代码的那一部分时,它将出现错误而不是正常运行,因此会告知您存在的问题。另一方面,在PHP中,您应该真正使用===
,因此打字错误仍将导致==
。
(null = $var)
),你会得到一个语法错误,否则可能会通过并造成混淆。 - arkascha