43

这到底是什么意思?

$number = ( 3 - 2 + 7 ) % 7;
4

6 回答 6

81

如前所述,它是模运算符,它返回除法运算的余数。

示例: 3%5返回 3,因为 3 除以 5 为 0,余数为 3。

5 % 10返回 5,出于同样的原因,10 进入 5 零次,余数为 5。

10 % 5返回 0,因为 10 除以 5 正好是 2 次,没有余数。

在您发布的示例中,计算(3 - 2 + 7)结果为 8,给您8 % 7,所以$number将是1,这是 8/7 的余数。

于 2009-12-19T21:23:51.960 回答
22

它是模运算符

$a % $b=$a 除以 的余数$b

它通常用于获取“每 N 个元素一个元素”。例如,每三个元素只获取一个元素:

for ($i=0 ; $i<10 ; $i++) {
    if ($i % 3 === 0) {
        echo $i . '<br />';
    }
}

得到这个输出:

0
3
6
9

(是的,好的,$i+=3会成功的;但这只是一个演示。)

于 2009-12-19T21:22:23.117 回答
12

它是运算符。在语句$a % $b中,结果$a是除以时的余数$b

于 2009-12-19T21:21:52.510 回答
4

使用此运算符可以轻松计算一个月中的奇数天或偶数天,例如,如果需要时间表或其他东西:

<?php echo (date(j) % 2 == 0) ? 'Today is even date' : 'Today is odd date'; ?>
于 2012-04-30T10:49:34.537 回答
3

%表示模数。

模数是数学中“除法后余数”的花哨名称。

(numerator) mod (denominator) = (remainder)

在 PHP 中

<?php
    $n = 13;
    $d = 7
    $r = "$n % $d";
    echo "$r is ($n mod $d).";
?>

在这种情况下,此脚本将回显

6 is (13 mod 7).

$r余数(答案)、$n分子和分母在哪里$d。模算子由于其作为单向函数的特殊特性而常用于公钥密码学中。

于 2014-07-12T11:46:04.530 回答
3

既然很多人说“模数求除数的余数”,那么让我们从准确定义余数开始说起。

在数学中,余数是执行一些计算后“剩余”的数量。在算术中,余数是 一个整数除以另一个整数以产生整数商(整数除法)后“剩余”的整数。

见:http ://en.wikipedia.org/wiki/Remainder

所以%(整数模数)是一种简单的询问方式,“除数后剩下多少除数?”

要使用 OP 的计算(3 - 2 + 7) = 8 % 7 = 1

它可以分解为:

(3 - 2 + 7) = 8
8 / 7 = 1.143 #Rounded up
.143 * 7 = 1.001 #Which results in an integer of 1

7 可以进入 8 1 次,剩余 7 中的 0.14

这里的所有都是它的。我希望这有助于简化模数的工作原理。


使用 21 的不同除数的其他示例。

细分21 % 3 = 0

21 / 3  = 7.0
3 * 0 = 0

(3 可以进入 21 7 次,剩余 3 中的 0)

细分21 % 6 = 3

21 / 6 = 3.5
.5 * 6 = 3

(6 可以进入 21 3 次,剩下 0.5 的 6)

细分21 % 8 = 5

21 / 8 = 2.625
.625 * 8 = 5

(8 可以进入 21 2 次,剩余 8 的 0.625)

于 2014-10-21T19:19:28.270 回答