1

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

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

输出 1。

谢谢

4

6 回答 6

5

5% 3 = 2。

3 - 2 = 1。

有一个特定的运算符优先级,这会导致在减号之前计算模数。

于 2013-06-15T10:34:27.010 回答
3

很简单的数学!

% / * 运算符首先计算,然后
+ -

5 % 3 = 2 
3 - 2 = 1

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

$x = (3 - 5) % 3;
于 2013-06-15T10:36:44.127 回答
1

答案当然是正确的。PHP 会像这样解析代码3 - (5 % 3)
5 % 32然后3 - 2给你1
5 % 3剩下的5 /3

于 2013-06-15T10:37:14.567 回答
0

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

$x = (3 - 5) % 3;
echo $x;
于 2013-06-15T10:35:24.027 回答
0

%则具有更高的存在性-。查看运算符优先级

于 2013-06-15T10:36:59.337 回答
0

BODMAS - 括号顺序 [^] 除法乘法加减法。
为了,

3 - 5 % 3

首先,
5 % 3将余数作为1
第二个
3 - 1
这给出2.

于 2013-06-15T10:53:19.003 回答