PHP基本操作符

时间:2014-11-03 09:02:56

标签: php logical-operators

刚刚遇到这个问题,你介意解释一下这最终会得到4的答案吗? 如此基本但我不知道它是如何发生的。

echo $a = 20%-8; //4

答案:

echo (5 % 3)."\n";           // prints 2
echo (5 % -3)."\n";          // prints 2
echo (-5 % 3)."\n";          // prints -2
echo (-5 % -3)."\n";         // prints -2

4 个答案:

答案 0 :(得分:2)

%运算符将保留操作提醒。那是$x % $y将导致$x的剩余部分除以$y

这里,当20除以-8时,它会留下提示4,这就是答案。

答案 1 :(得分:1)

你正试图得到负数的模数。这与:20%8

没有区别

请参阅:https://math.stackexchange.com/questions/519845/modulo-of-a-negative-number

答案 2 :(得分:1)

@bwaaaaaa,模数运算符会提示操作。

Suppose $x % $y, that means that Remainder of $x divided by $y.

因此,对于你的例子,当20除以-8时会给你提醒4,所以它的输出是4。

了解更多信息。关于modulas运算符,请访问this

答案 3 :(得分:0)

当一个操作数除以第二个操作数时,余数运算符返回剩余的余数。记住模数运算符结果总是采用被除数的符号,而不是除数。它使用内置的模数函数来产生结果,这是var1除以var2的整数余数。

所以在你的代码中,var1是20,它是正整数,var2是-8,它是负整数。 20是被除数,-8是除数。

所以我们知道模块运算符结果会采用被除数的符号,而不是除数。这就是为什么提醒答案只有4。 希望现在很清楚。谢谢