在PHP中混淆运算符优先级2/5 * 3

时间:2015-10-30 10:57:02

标签: php operator-precedence

正如PHP手册所示,以下运算符具有相同的优先级(左关联性):

* / %

所以,这意味着:

echo 2 / 5 * 3

必须显示7.5!因为乘法将首先执行,5 * 3 = 15然后商将除以2.

但是当我运行该代码时,PHP代码输出1.2!

有人可以了解发生了什么吗?

4 个答案:

答案 0 :(得分:3)

相同的优先级意味着一切都将从左到右发生。

意味着它不会先成倍增加。手册中* / %的编写顺序并不重要。

  • 2/5 = 0.4
  • 0.4 * 3 = 1.2

另外,根据你的逻辑,你应该得到1.(3)但这不是重点。

答案 1 :(得分:1)

执行算术运算命令。其中称为PEMDAS

  1. () - 方括号
  2. / - 偏差
  3. * - 乘法
  4. + - 添加
  5. - - min
  6. 这将在订单

    上方(2 / 5 * 3执行

    这里发生了什么 2 / 5 * 3

    1. 2/5 = 0.4
    2. 0.4*3 = 1.2
    3. 满足您的要求

      1. 5 * 3 = 15
      2. 15 / 2 = 7.5
      3. 所以你必须(5 * 3) / 22 / (5 * 3)

        PHPFiddle Preview

答案 2 :(得分:0)

它是从左到右 五分之二= 0.4 0.4 * 3 = 1.2

答案 3 :(得分:0)

正如您在此处所见:http://php.net/manual/en/language.operators.precedence.php

运算符* /和%具有相同的优先级。 *与/.

具有相同的优先级