百分号在PHP中意味着什么?

时间:2009-12-19 21:21:09

标签: php operators modulo

这究竟是什么意思?

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

6 个答案:

答案 0 :(得分:76)

如上所述,它是modulus运算符,它返回除法运算的剩余部分。

示例: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的剩余部分。

答案 1 :(得分:18)

这是modulus operator

  

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

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

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

获得此输出:

0
3
6
9

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

答案 2 :(得分:12)

这是modulus运营商。在$a % $b语句中,结果是$a除以$b时的余数

答案 3 :(得分:4)

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

<?php echo (date(j) % 2 == 0) ? 'Today is even date' : 'Today is odd date'; ?>

答案 4 :(得分: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次剩余的.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次,剩下6次.5

  

21 % 8 = 5的细分:

21 / 8 = 2.625
.625 * 8 = 5
     

(8次可以进入21次,剩余8次的.625次)

答案 5 :(得分:2)

%表示模数。

模数是&#34;除以后的剩余部分&#34;在数学方面。

(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用于分母。模数运算符通常用于public-key cryptography,因为它具有one-way function的特殊性。