考虑以下代码:
$x = 1.4;
$i1 = 0.5;
$i2 = 0.4;
echo ($i1 + $i2 = $x); // Outputs 1.9
这是为什么?我试过没有结果的搜索这种变量设置。变量$i2
被忽略了吗?为何使用此echo ($x + $i1);
?它输出相同的结果。
答案 0 :(得分:5)
关键是它在一个陈述中做了两个事情。
这是简写:
$i2 = $x;
echo ($i1 + $i2);
分配以内联方式进行,保存单独的行。不理想的风格,但经常在if()
,while()
和其他控制语句中使用。
答案 1 :(得分:2)
这将是$ i1 +任务。
作业评估为$ x ($i2 = $x )
最终结果为echo 0.5 + 1.4.
即使php也有运营商优先级http://php.net/manual/en/language.operators.precedence.php。
答案 2 :(得分:1)
=
之前处理 +
,这意味着会发生这种情况:
echo ($i1 + ($i2 = $x));