我从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);
?>
我已经读过它是一个模数运算符,用于余下的运算符。提前谢谢。
答案 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中循环,就像十二生肖一样循环。