今天发现了一些有趣的代码片段。简化的,它看起来像这样:运算符优先级为“or”并且赋值为
$var = null;
$var or $var = '123';
$var or $var = '312';
var_dump($var);
的事情是,因为我知道,precedence of assignment is higher that OR
,因此,我认为,应该var_dump
输出312
(第一 - 分配,第二次 - 在逻辑比较)。但结果是不同的,我得到123
(首先 - 检查是否$var
转换为true
,第二 - 如果没有,分配值)。
问题是它是如何工作的?
为什么行为与or
和||
相同?
这很有道理!谢谢!所以,原因是'短路操作者实际上是控制结构而不是简单的算术操作符 – Timur 2013-04-05 14:11:53