【问题标题】:PHP basic operatorPHP 基本运算符
【发布时间】:2014-11-03 09:02:55
【问题描述】:

刚刚遇到这个问题,您介意解释一下这最终的答案是 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

【问题讨论】:

  • % 是模运算符,是整数除法的余数。当您将 20 除以 -8 时,整数余数为 4。

标签: php logical-operators


【解决方案1】:

% 操作符会留下操作的提醒。即$x % $y 将导致$x 的余数除以$y

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

【讨论】:

    【解决方案2】:

    您正在尝试获取负数的模数。这和:20%8

    见:https://math.stackexchange.com/questions/519845/modulo-of-a-negative-number

    【讨论】:

      【解决方案3】:

      @bwaaaaaa,模数运算符会给出操作提醒。

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

      因此,对于您的示例,当 20 除以 -8 时会提示您 4,因此其输出为 4。

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

      【讨论】:

      • 谢谢!我对-8感到困惑。终于明白什么是模运算了。
      • @bwaaaaaa,很高兴我能帮上忙!如果我的回答对你真的有帮助,你能接受我的回答吗?
      【解决方案4】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2021-09-18
        • 1970-01-01
        • 2023-03-04
        • 1970-01-01
        • 2017-10-29
        • 2017-01-20
        • 1970-01-01
        • 2011-01-13
        • 2011-05-28
        相关资源
        最近更新 更多