Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-哪一个更接近null==或==null_Php_Syntax - Fatal编程技术网

php-哪一个更接近null==或==null

php-哪一个更接近null==或==null,php,syntax,Php,Syntax,我多次看到php开发人员使用这样的东西: if(null == $var){ } 当我使用 if($var == null){ } 这两个不同吗?是否有任何理由使用每一个?或者它在任何方面都是一个选择问题?简单地null不能赋值 null=$a,它将抛出解析错误 但是任何变量都可以将null作为值。 $a=null 因此,如果您在第二种情况下将==错误地输入到=,您已经更改了$a的值,并检查了$a的新值的if条件,该值的计算结果总是为false。简单回答,情况完全相同。长答覆: C编程语

我多次看到php开发人员使用这样的东西:

if(null == $var){

}
当我使用

if($var == null){

}

这两个不同吗?是否有任何理由使用每一个?或者它在任何方面都是一个选择问题?

简单地
null
不能赋值
null=$a
,它将抛出解析错误

但是任何变量都可以将
null
作为值。
$a=null


因此,如果您在第二种情况下将
==
错误地输入到
=
,您已经更改了
$a
的值,并检查了
$a
的新值的if条件,该值的计算结果总是为false。

简单回答,情况完全相同。长答覆:

C编程语言允许在条件内赋值。e、 g

(i=1)==1
有效。这意味着:

if (x = null)
这也是有效的

在某些情况下,您打算分配x=null,但(大多数情况下)您只是想比较
x==null
并输入错误

因此,C(或C++)中的开发人员将执行以下操作:

if (null == x) 
这是因为如果它被错误地输入到
if(null=x)
,它将无法编译

然而,在PHP中,这不再是一个有效的原因,因为PHP没有被编译,因此这些错误不会过早地被捕获,这破坏了反向语法的全部目的

然而,在PHP中使用它的优点是,当您点击代码的这一部分时,它将出错而不是正常运行,因此会通知您问题


另一方面,在PHP中,您应该真正使用
==
,这样打字错误无论如何都会导致
=

$var==null
是标准方式。。两者没有区别。这正是我们总是正确书写valee的标准。第一种方法的优点是,如果出现诸如
(null=$var)
之类的意外输入错误,就会出现语法错误,否则会传递错误并造成混乱。@MASIDDIQUI我强烈反对。@arkascha请说明原因,以便我也能解释清楚know@MASIDDIQUI认为自己开明,阿卡什拉已经提供了。打字错误不是这个常见错误的唯一原因。@bub我知道,但这就是原因,它来自C世界和嵌入式系统,在这些系统中调试要困难得多。。所以,这是一种古老的防守技巧,可以避免错误地输入比较和分配