PHP串联字符串和算术运算

前端之家收集整理的这篇文章主要介绍了PHP串联字符串和算术运算前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我不久前开始学习 PHP,我遇到了这个问题: @H_502_1@<?PHP $a = 1; $b = 2; echo "$a * $b = " . $a * $b; echo "<br />"; echo "$a / $b = " . $a / $b; echo "<br />"; echo "$a + $b = " . $a + $b; echo "<br />"; echo "$a - $b = " . $a - $b; echo "<br />";

我得到以下输出

@H_502_1@1 * 2 = 2 1 / 2 = 0.5 3 -1

输出中的最后两行不是我所期望的.

为什么是这样?这些表达式是如何评估的?我正在努力更好地理解这门语言.

发生这种情况是因为连接运算符比加法或减法运算符具有 higher precedence,但乘法和除法具有比串联更高的优先级.

那么,你真正执行的是:

@H_502_1@echo ("$a + $b = " . $a) + $b; echo ("$a - $b = " . $a) - $b;

在第一种情况下,这变成了:

@H_502_1@"1 + 2 = 1" + $b

哪个PHP尝试将“1 2 = 1”转换为数字(因为type juggling)并得到1,将表达式转换为:

@H_502_1@1 + 2

这就是你得到3的原因.相同的逻辑可以应用于减法条件.

相反,如果在计算周围加上括号,您将获得所需的输出.

@H_502_1@echo "$a + $b = " . ($a + $b); echo "$a - $b = " . ($a - $b);

猜你在找的PHP相关文章