这到底是什么意思?
$number = ( 3 - 2 + 7 ) % 7;
如前所述,它是模运算符,它返回除法运算的余数。
示例: 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 的余数。
它是模运算符:
$a % $b
=$a
除以 的余数$b
。
它通常用于获取“每 N 个元素一个元素”。例如,每三个元素只获取一个元素:
for ($i=0 ; $i<10 ; $i++) {
if ($i % 3 === 0) {
echo $i . '<br />';
}
}
得到这个输出:
0
3
6
9
(是的,好的,$i+=3
会成功的;但这只是一个演示。)
它是模运算符。在语句$a % $b
中,结果$a
是除以时的余数$b
使用此运算符可以轻松计算一个月中的奇数天或偶数天,例如,如果需要时间表或其他东西:
<?php echo (date(j) % 2 == 0) ? 'Today is even date' : 'Today is odd date'; ?>
既然很多人说“模数求除数的余数”,那么让我们从准确定义余数开始说起。
在数学中,余数是执行一些计算后“剩余”的数量。在算术中,余数是 一个整数除以另一个整数以产生整数商(整数除法)后“剩余”的整数。
见: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)