2011-01-20 85 views
1

我有下面的代码,并且不认为需要,即&&应该使用,因为没有什么左边部分分配给?PHP中的“和”和“&&”运算符有什么区别吗?

if($_REQUEST['foo'] != 'abc' and $_REQUEST['bar'] == 'def') 
{ 
    echo "all your base"; 
} 

所以它应该是:

if($_REQUEST['foo'] != 'abc' && $_REQUEST['bar'] == 'def') 
{ 
    echo "all your base"; 
} 
+1

*(相关)* [参考 - 这是什么符号在PHP中的意思?](http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – Gordon 2011-01-20 12:05:37

+0

*(参考)* [PHP语言中的运算符优先级](http://de2.php.net/manual/en/language.operators.precedence.php) – Gordon 2011-01-20 12:06:54

回答

4

在你的情况,&&and做同样的事情,但看看在operator precedence 。你可以看到&&and不在同一级别,因此在某些情况下可能会给你带来意想不到的结果 - 我建议始终使用&&,但这是您的选择。

1

'和' 和 '& &' 是同一个运营商,除了优先级差异。

他们是不同运营商,但他们运作相同,除了优先权的差异。

+0

也使用'&&'使您看起来更酷。 – Manu 2011-01-20 12:07:58

+0

不正确。 `和`是`T_LOGICAL_AND`而'&&`是`T_BOOLEAN_AND`。见http://de2.php.net/manual/en/tokens.php – Gordon 2011-01-20 12:09:11

3

& &和“和”是两个不同的东西,因为它们的优先级。

“和”和“或”运算符的两种不同变体的原因是它们以不同的优先级运行。 (见运算符优先级。)

相关问题