1

我从 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);
    ?>

我读过它是一个模数运算符,其余的都是。提前致谢。

4

2 回答 2

7

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

例如。7 % 3是 1 因为在你之后divide 7 by 3剩下的整数是 1

在上面的代码中

2004/12 = 167

但是除法的提示是 0,因为 2004 完全可以被 12 整除。

所以

2004 % 12 = 0
于 2013-04-24T22:44:08.407 回答
3

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

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

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

于 2013-04-24T22:48:36.347 回答