AND [和]&&和

时间:2011-08-19 16:23:48

标签: php logical-operators

鉴于声明:

if($value && array_key_exists($value, $array)) {

         $hello['world'] = $value;

        }

最好使用逻辑运算符AND而不是&&?

4 个答案:

答案 0 :(得分:11)

他们自己做的完全一样。因此a && ba and b相同。但是,它们并不相同,因为&&的优先级高于and。有关详细信息,请参阅the docs

此示例显示了差异:

// The result of the expression (false && true) is assigned to $e
// Acts like: ($e = (false && true))
$e = false && true;

// The constant false is assigned to $f and then true is ignored
// Acts like: (($f = false) and true)
$f = false and true;

答案 1 :(得分:3)

您提供的链接有一个注释:

  

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

在你的情况下,因为它是唯一的操作符,它取决于你,但它们完全相同。

答案 2 :(得分:3)

它们在条件语句中是相同的,但在条件赋值时要小心

// The result of the expression (true && false) is assigned to $g
// Acts like: ($g = (true && false))
$g = true && false;

// The constant true is assigned to $h and then false is ignored
// Acts like: (($h = true) and false)
$h = true and false;

// The result of the expression (false || true) is assigned to $e
// Acts like: ($e = (false || true))
$e = false || true;

// The constant false is assigned to $f and then true is ignored
// Acts like: (($f = false) or true)
$f = false or true;

来自您链接的Logical Operators手册。

答案 3 :(得分:1)

只有拼写的差异..使用&& 代替 AND ..