[英]Variable merging which doesn't make sense
考虑以下代码:
$x = 1.4;
$i1 = 0.5;
$i2 = 0.4;
echo ($i1 + $i2 = $x); // Outputs 1.9
为什么是这样? 我试过没有结果的搜索这种变量设置。 变量$i2
被忽略了吗? 为什么要使用这个over echo ($x + $i1);
? 它输出相同的结果。
关键是它在一个陈述中做了两件事。
它是以下的简写:
$i2 = $x;
echo ($i1 + $i2);
赋值发生在内联,保存单独的行。 不理想的样式,但经常用于if()
, while()
和其他控制语句。
这将是$ i1 +任务。
赋值评估为$ x ($i2 = $x )
最终结果是echo 0.5 + 1.4.
甚至php也有运营商优先级http://php.net/manual/en/language.operators.precedence.php 。
=
在+
之前处理,这意味着发生了这种情况:
echo ($i1 + ($i2 = $x));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.