我有以下代码:
<?php $a = 1; $b = 2; echo "sum: " . $a + $b; echo "sum: " . ($a + $b); ?>
当我执行代码时,我得到:
2 sum: 3
为什么"sum:"在第一个回显中无法打印字符串?将加法放在括号中似乎很好。
"sum:"
是否在任何地方都记录了这种怪异的行为?
这两个运算符的加法+运算符和串联.运算符都具有相同的运算符优先级,但是由于它们保持关联,因此它们的计算方式如下:
+
.
echo (("sum:" . $a) + $b); echo ("sum:" . ($a + $b));
因此,您的第一行首先进行连接,最后得到:
"sum: 1" + 2
(现在,由于这是一个数字上下文,因此您的字符串将转换为整数,因此最终得到0 + 2,然后得到结果2。)
0 + 2
2