【发布时间】:2012-08-26 03:35:51
【问题描述】:
我正在尝试了解or 运算符的行为。请看下面的例子:
$e = false || true;
var_dump($e);
输出如预期:bool(true);
$f = false or true;
var_dump($f);
输出如预期:bool(false)。我的理解是= 的优先级高于Or,所以这就是$f 分配给false 的原因。
但下面的代码与我的想法完全相反。我认为$foo 将分配给5,然后与自身进行比较。
但是 $foo 仅在设置了 $foo 时才被分配,这意味着它正在检查 $foo 是否已分配给之前的任何内容,将 5 分配给它。
$foo or $foo = 5;
谁能解释为什么会这样?
【问题讨论】:
-
+1 好问题。对于任何坚持这一点的人来说,这对未来的程序员非常有用。
-
不直接相关,您可能会发现 this page 有用。我也考虑过添加布尔运算符。
-
我已更新页面以在不同情况下显示“或”和“和”。有一些奇怪的结果。
标签: php or-operator