我需要对百分号操作符进行一些解释

时间:2013-04-24 22:42:18

标签: php

我从php.net获取了这段代码,但我需要解释百分号是做什么的。我已经改变了一年并获得了新的结​​果,但这一切似乎都是随机的。

<?php
    function getChineseZodiac($year){

        switch ($year % 12) :
            case  0: return 'Monkey';  // Years 0, 12, 1200, 2004...
            case  1: return 'Rooster';
            case  2: return 'Dog';
            case  3: return 'Boar';
            case  4: return 'Rat';
            case  5: return 'Ox';
            case  6: return 'Tiger';
            case  7: return 'Rabit';
            case  8: return 'Dragon';
            case  9: return 'Snake';
            case 10: return 'Horse';
            case 11: return 'Lamb';
        endswitch;
    }

    echo getChineseZodiac(2016);
    ?>

我已经读过它是一个模数运算符,用于余下的运算符。提前谢谢。

2 个答案:

答案 0 :(得分:7)

mod运算符返回除法的余数。

EG。 7 % 3为1,因为在divide 7 by 3后,剩余的整数为1

在上面的代码中

2004/12 = 167

但该分部的提醒为0,因为2004年完全可以被12整除。

所以

2004 % 12 = 0

答案 1 :(得分:3)

这里的目的是在12处“环绕”,这样你就会得到一个每12年重复一次的序列。

余数(模数)运算符通常以这种方式使用。如果从第11年开始,$year % 12将返回11/12的剩余部分,当然是11,因此值不变。但是,从第12年开始,数字将会回绕:12/12的剩余部分为0,13 / 12的剩余部分为1,依此类推。

因此,$year % 12连续几年在数字0到11中循环,就像十二生肖一样循环。