为什么这个PHP代码输出一个

时间:2013-06-15 10:33:25

标签: php

我有这个PHP代码,我无法弄清楚任何人都可以帮忙解决这个问题。

$x = 3 - 5 % 3;
echo $x;

输出1分。

谢谢

6 个答案:

答案 0 :(得分:5)

5%3 = 2。

3 - 2 = 1。

有一个特定的operator precedence,会导致在减号之前评估模数。

答案 1 :(得分:3)

这是简单的数学!

首先计算

%/ *运算符然后再计算 + -

5 % 3 = 2 
3 - 2 = 1

如果您想“阻止”,只需添加一些括号:

$x = (3 - 5) % 3;

答案 2 :(得分:1)

当然答案是对的。 PHP解析像3 - (5 % 3)这样的代码 5 % 323 - 2为您提供1
5 % 35 /3

的剩余部分

答案 3 :(得分:0)

这是操作的顺序。在减法周围没有括号,首先评估模数。试试这个:

$x = (3 - 5) % 3;
echo $x;

答案 4 :(得分:0)

%-具有更高的优势。查看operator precedence

答案 5 :(得分:0)

BODMAS - Brackets Order [^] Division Multiplication Addition Subtraction 对于,

3 - 5 % 3

第一,
5 % 3将余数设为1
第二,
3 - 1
这给了2