我想使$a=1,3,5,7,8,10,12这些数字,让输出显示为31。$a=4,6,9,11时让输出显示为30,
$a=2时,让输出显示为28.
下面是我自己编的,不知道错在哪了。执行结果如下:请高手帮忙。感谢不尽。

解决方案 »

  1.   

    if 判断,等号换成 == ,一个等号是赋值
    另外,若是判断多个,你可以这样判断if(in_array($a,array(1,3,5,7,8,10,12))){
     echo 31;
    }
      

  2.   

    把 if 语句中的 = 换成 == 就正确了古罗马人在设定每月天数时,是这样考虑的
    31、30、31、30、31、30、31、30、31、30、31、30
    共 366 天,多了1 天
    于是就从 2月份扣除了一天(因为二月是处决犯人的月份)
    31、29、31、30、31、30、31、30、31、30、31、30
    威廉四世登基时,由于他的生日是8月份30天,而威廉三世的生日在7月份有31天,所以下令将8月份也改成了31天
    31、29、31、30、31、30、31、31、30、31、30、31
    这样又多出了一天,于是就又在倒霉的2月减去一天。变成了现在的格局
    31、28、31、30、31、30、31、31、30、31、30、31可以这样计算:
    $m = 月份;
    if($m >7) $m++;
    $d = ($m == 2 ? 28 : 30) + $m % 2;
      

  3.   


    你做这个还是多了解下date函数,比你这样算来算去好的多。