PHP 中令人困惑的运算符优先级 2 / 5 * 3
Confusing Operator Precedence 2 / 5 * 3 in PHP
如PHP的手册所示,以下运算符具有相同的优先级(左结合性):
* / %
所以,这意味着:
echo 2 / 5 * 3
必须显示7.5!因为乘法会先执行,5 * 3 = 15
然后商会除以 2。
但是当我 运行 该代码时,PHP 代码输出 1.2!
任何人都可以了解发生了什么事吗?
相同的优先级意味着一切都会从左到右发生。
意味着它不会先繁殖。 * / %
在手册中的书写顺序无关紧要。
- 2 / 5 = 0.4
- 0.4 * 3 = 1.2
此外,按照您的逻辑,您应该得到 1.(3),但这不是重点。
从左到右
2/5=0.4
0.4*3=1.2
有一个执行算术运算的命令。调用短 PEMDAS
()
- 括号
/
- 偏差
*
- 乘法
+
- 添加
-
- 分钟
这将(2 / 5 * 3
) 执行上面的命令
所以这里发生了什么2 / 5 * 3
2/5
= 0.4
0.4*3
= 1.2
满足您的要求
5 * 3
= 15
15 / 2
= 7.5
所以你必须做 (5 * 3) / 2
或 2 / (5 * 3)
如您所见:http://php.net/manual/en/language.operators.precedence.php
运算符*/和%具有相同的优先级。 * 与 /.
具有相同的优先级
如PHP的手册所示,以下运算符具有相同的优先级(左结合性):
* / %
所以,这意味着:
echo 2 / 5 * 3
必须显示7.5!因为乘法会先执行,5 * 3 = 15
然后商会除以 2。
但是当我 运行 该代码时,PHP 代码输出 1.2!
任何人都可以了解发生了什么事吗?
相同的优先级意味着一切都会从左到右发生。
意味着它不会先繁殖。 * / %
在手册中的书写顺序无关紧要。
- 2 / 5 = 0.4
- 0.4 * 3 = 1.2
此外,按照您的逻辑,您应该得到 1.(3),但这不是重点。
从左到右 2/5=0.4 0.4*3=1.2
有一个执行算术运算的命令。调用短 PEMDAS
()
- 括号/
- 偏差*
- 乘法+
- 添加-
- 分钟
这将(2 / 5 * 3
) 执行上面的命令
所以这里发生了什么2 / 5 * 3
2/5
= 0.40.4*3
= 1.2
满足您的要求
5 * 3
= 1515 / 2
= 7.5
所以你必须做 (5 * 3) / 2
或 2 / (5 * 3)
如您所见:http://php.net/manual/en/language.operators.precedence.php
运算符*/和%具有相同的优先级。 * 与 /.
具有相同的优先级