PHP基础案例三:判断学生星座
一、需求分析
星座是根据出生月日(11~14位)进行匹配;例如,当出生日期在3月21日和4月19日之间就为白羊座,其他星座按此继续编写。
二、设计思路
1、 星座的划分是两个日期的区间,当日期小于10日的学生出生日,如何防止比较出错?
2、 如何对星座进行判断?
三、知识储备
1、在 PHP 中,提供了下列条件语句:
· if 语句 – 在条件成立时执行代码
· ? : -三元运算符
· if…else 语句 – 在条件成立时执行一块代码,条件不成立时执行另一块代码
· if…else if….else 语句 – 在若干条件之一成立时执行一个代码块
· switch 语句 – 在若干条件之一成立时执行一个代码块
2、if 语句
用于仅当指定条件成立时执行代码。
语法
if (条件) { 条件成立时要执行的代码; }
3、if…else语句
在条件成立时执行一块代码,条件不成立时执行另一块代码。
语法
if (条件) { 条件成立时执行的代码; } else { 条件不成立时执行的代码; }
4、if…else if….else 语句
在若干条件之一成立时执行一个代码块。.
语法
if (条件) { if 条件成立时执行的代码; } else if (条件) { elseif 条件成立时执行的代码; } else { 条件不成立时执行的代码; }
5、Switch 语句
希望有选择地执行若干代码块之一。
语法
switch (n) { case label1: 如果 n=label1,此处代码将执行; break; case label2: 如果 n=label2,此处代码将执行; break; default: 如果 n 既不等于 label1 也不等于 label2,此处代码将执行; }
四、代码实现
1、定义变量保存学生资料
$name = '王六';//保存学生的姓名 $birth = '2003-08-07'; //保存学生的出生日期
2、分割字符串,获取学生出生的年、月、日
$temp = explode('-',$birth); $stu_by = $temp[0]; $stu_bm = $temp[1]; $stu_bd = $temp[2];
3、获取当前时间的年份、月份和日期
$cur_y = date('Y'); //4位数字完整表示的年份 $cur_m = date('n'); //数字表示的月份,没有前导零,1~12 $cur_d = date('j'); //月份中的第几天,没有前导零,1~31
4、判断学生的日期是否是两位数
if($stu_bd < 10){ $stu_bd = '0'.$stu_bd; }
$date = "$stu_bm.$stu_bd";
5、判断星座
if($date >=1.21 && $date <= 2.19){ $const = '水瓶座'; }elseif($date >=2.20 && $date <= 3.20){ $const = '双鱼座 }elseif($date >=3.21 && $date <= 4.20){ $const = '白羊座'; }elseif($date >=4.21 && $date <= 5.21){ $const = '金牛座'; }elseif($date >=5.22 && $date <= 6.21){ $const = '双子座'; }elseif($date >=6.22 && $date <= 7.22){ $const = '巨蟹座'; }elseif($date >=7.23 && $date <= 8.23){ $const = '狮子座'; }elseif($date >=8.24 && $date <= 9.23){ $const = '处女座'; }elseif($date >=9.24 && $date <= 10.23){ $const = '天秤座'; }elseif($date >=10.24 && $date <= 11.22){ $const = '天蝎座'; }elseif($date >=11.23 && $date <= 12.21){ $const = '射手座'; }else{ $const = '魔羯座'; }
五、结果展示