单一条件分支语句(if)
$a=10;$a=20;if($a>$b){echo 34;a大于b";}
双向条件分支构造(else字句)
$a=10;$b=20;if($a>$b){echo "a大于b";}else{echo "a小于b";}
多项条件分支构造(elseif)
date_default_timezone_set("Etc/GMT-8");echo "当前韶光:".date("Y-m-d H:i:s",time())."";$hour=date("H");if ($hour<6) {echo "凌晨好!
";}elseif ($hour<9){echo "早上好";}elseif ($hour<12){echo "上午好";}elseif ($hour<14){echo "中午好";}elseif ($hour<17){echo "下午好";}elseif ($hour<19){echo "傍晚好";}else {echo "夜里好";}
多项条件分支语句(switch语句)
$week=date("D");switch ($week) {case "Mon":echo "星期一";break;case "Tue":echo "星期二";break;case "Wed";echo "星期三";break;case "Thu":echo "星期四";break;case "Fri":echo "星期五";break;case "Sat":echo "星期六";break;case "Sun":echo "星期日";break;}
switch ($i) {case 0:case 1:case 2:echo "i is less than 3 but not negative";break;case 3:echo "i is 3";}switch ($i) {case 0:echo "i equals 0";break;case 1:echo "i equals 1";break;case 2:echo "i equals 2";break;default:echo "i is not equal to 0, 1 or 2";}function getCarProperty($num){switch ($num){case 1:$cardesc = "城市公交业务客车";return $cardesc;case 2:$cardesc = "出租租凭业务客车";return $cardesc;case 3:$cardesc = "城市公交业务客车";return $cardesc;case 4:$cardesc = "公路客运业务客车";return $cardesc;case 5:$cardesc = "旅游业务客车";return $cardesc;case 6:$cardesc = "业务货车";return $cardesc;case 10:$cardesc = "企业非业务客车";return $cardesc;case 11:$cardesc = "机关非业务客车";return $cardesc;case 12:$cardesc = "非业务货运";return $cardesc;case 15:$cardesc = "业务特种车";return $cardesc;case 16:$cardesc = "非业务特种车";return $cardesc;}}
巢状条件分支构造
$sex="MAN";$age=43;if($sex="MAN"){if($age>=60){echo "这个男士已退休了".($age-60)."年了";}else{echo "这个男士还在事情,还有".(60-$age)."年才能退休";}}else{if($age>=55){echo "这个女士已退休了".($age-55)."年了";}else{echo "这个女士还在事情,还有".(55-$age)."年才能退休";}}
循环构造:
while()循环
$count=1;while($count<=10){echo "这是第<b>$count</b>次循环实行输出的结果<br>";$count++;}
while语句与if语句一样也可以多层嵌套
<html><head><title>利用while循环嵌套输出表格</title></head><body><table align="center" border="1" width=600><caption><h1>利用while循环嵌套输出表格</h1></caption><?php$out = 0; //外层循环须要计数的累加变量while( $out < 10 ) { //指定外层循环,并且循环次数为10次if($out%2==0) //指定两行交替的背景颜色$bgcolor="#ffffff";else$bgcolor="#dddddd";//实行一次则输出一个行开始标记,并指定行的背景颜色echo "<tr bgcolor=".$bgcolor.">";$in = 0; //内层循环须要计数的累加变量while( $in < 10 ) { //指定内层循环,并且循环次数为10次echo "<td>".($out10+$in)."</td>"; //实行一次,输出一个单元格$in++; //内层的计数变量累加}echo "</tr>"; //输出行关闭标记$out++; //外层的计数变量累加}?></table></body></html>
do...while循环
它最适宜循环中的语句至少必须实行一次的情形。
$count=0;do{echo $count;$count++;}while($count>0);
for语句
for循环语句的利用适用于明确知道重复实行次数的情形,for语句将循环的次数的变量在for语句中预先定义好。
for ($i = 1; $i <= 10; $i++) {echo $i;}for ($i = 1; ; $i++) {if ($i > 10) {break;}echo $i;}$i = 1;for (;;) {if ($i > 10) {break;}echo $i;$i++;}for ($i = 1; $i <= 10; echo $i, $i++);
break语句
break 结束当前 for,foreach,while,do-while 或者 switch 构造的实行。
break 可以接管一个可选的数字参数来决定跳出几重循环。
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');while (list (, $val) = each($arr)) { if ($val == 'stop') { break; //终止第一层循环 break 1 } echo "$val<br />\n";}$i = 0;while (++$i) { switch ($i) { case 5: echo "At 5<br />\n"; break 1; //终止 switch循环. case 10: echo "At 10; quitting<br />\n"; break 2; //终止switch和while两次层循环 default: break; }}
continue
continue 在循环构造用用来跳过本次循环中剩余的代码并在条件求值为真时开始实行下一次循环。
continue 接管一个可选的数字参数来决定跳过几重循环到循环结尾。
while (list ($key, $value) = each($arr)) {if (!($key % 2)) { continue;}do_something_odd($value);}for ($i = 0;$i<3;$i++) {echo "Start Of I loop\n";for ($j=0;;$j++) {if ($j >= 2) continue 2;echo "I : $i J : $j"."\n";}echo "End\n";}
exit语句
前面利用过的die()函数式exit()函数的别名,可以带有一个参数输出一条信息,并退出当前脚本。
$conn=mysql_connect("localhost","root","123456") or die("链接数据库失落败");mysql_select_db("db") or die("选择数据库失落败!
");$result=mysql_query("select from table");if(!$result){ echo "SQL语句实行失落败"; exit;}
问题:
1 什么时候利用if...elseif...else构造? 什么时候利用switch构造?
答:对付范围的判断, 常日利用if...elseif...else构造
对付固定值的判断, 常日利用switch构造
2 什么时候利用for循环, 什么时候利用while循环
答:对付循环次数已知的条件下, 建议利用for循环, 对付循环次数未知的情形下, 建议利用while循环。
3 while循环与do…while…循环的紧张差异在哪里
while循环是先判断后实行, do...while...先实行后判断。以是从循环次数来看, do...while...始终要比while循环多实行一次。
约请码:
function tradenoa(){ return substr(str_shuffle('ABCDEFGHIJKLMNPQRSTUVWXYZ'), 0, 9);}for (; true; ) { $tradeno = tradenoa(); if (!M('User')->where(array('invit' => $tradeno))->find()) { //ThinkPHP 框架 查询约请码是否在数据库中存在 break; }}