今天发现了一些有趣的代码片段。简化后,它看起来像这样:
$var = null;
$var or $var = '123';
$var or $var = '312';
var_dump($var);
问题是,据我所知,分配的优先级高于OR
,因此,正如我假设的那样,var_dump
应该输出312
(第一个 - 分配,第二个 - 逻辑比较)。但结果是不同的,我得到123
(首先 - 检查是否$var
转换为true
,其次 - 如果不是,分配值)。
问题是它是如何工作的?
or
为什么和的行为相同||
?