

条件控制语句if/if...else/elseif/switch...case...default,循环控制语句:while/do...while/for/foreach及不用大括号的流程书写和退出循环
4.1 条件控制语句
1) 1.if语句 ,如果if后面表达式为真就执行下面的语句
If (expression) statement;
2) if……else ,如果表达式为真时执行,不为真是执行else后的,例
$num = rand(1,31);
if ($num%2 == 2) {
echo '变量'.$num.'为偶数';
}else{
echo '变量'.$num.'为奇数';
}
3) Else if,当有多个结果时选用
$moth = date("n");
$today = date("j");
if($today >= 1 and $today <=10) {
echo '今天是'.$moth.'月'.$today.'日上旬';
}elseif ($today>10 and $today <= 20){
echo '今天是'.$moth.'月'.$today.'日中旬';
}else{
echo '今天是'.$moth.'月'.$today.'日下旬';
}
4) Switch...Case…… default多重判断,依次判断表达式的值和那个case后相同就执行那个,都不相同执行default:
setlocale(LC_TIME,"chs");
$weekday = strftime("%A");
switch($weekday){
case "星期一":
echo "今天是".$weekday.",新的一周开始了";
break;
case "星期二":
echo "今天是".$weekday.",保持昨天状态,继续努力";
break;
case "星期三":
echo "今天是".$weekday.",新的一周开始了";
break;
case "星期四":
echo "今天是".$weekday.",保持昨天状态,继续努力";
break;
case "星期五":
echo "今天是".$weekday.",保持昨天状态,继续努力";
break;
default:
echo "今天休息";
break;
}
4.2 循环控制语句:while/do...while/for/foreach及不用大括号的流程书写和退出循环
1)while语句 先判断再循环, 直到表达的的值为假退出
$num=1;
$str="10以内的偶数为:";
while($num<=10){
if($num % 2 == 0 ) {
$str .= $num. " "
}
$num++;
}
echo $str;
2)do...while 同while,比前者多循环一次, 先执行再判断,比while多执行一次
$num = 1;
while($num != 1) {
echo "不会看到";
}
do{
echo "会看到";
}while($num != 1);
3)for语句, 最复杂的循环 三个表达式
语法:
For (expression1; expression2; expression3) {
//第一次无条对表达式1取值,每次循环判断表达式2值是否为真,为真执行,不为真跳出循环,每次循环后执行表达式3
statment;
}
$num=1;
for($i = 1;$i <= 100;$i++) {
$sum *= $i;
}
echo $num;
4) Foreach语句,PHP4.0以上新增,只能用于数组,5.0中增加对象支持 ,语法:
foreach (array_expression as $value) //语句作用1,遍历数组将数组中值赋给$value
statement;
或
Foreach (array_expression as $key => $value) //作用2,遍历数组每次将下标赋给$key,值赋给$value
statement;
<?php
$arr = array("we","are","the","best","team","!"); //声明数组
if (is_array($arr) == true) { //is_array是判断是否数组的函数
foreach($arr as $key => $value) {
echo $key." = ".$value."<br>";
}
}else{
echo "不是数组,不能使用foreach语句";
}
?>
5) 另一种流程控制的书写模式
当一页面有过多的大括{},查找匹配很头痛,所以所有流程语句中可以使用冒号:代替左括号,用endif/endwhile/endfor/endforeach/endswitch来代替右括号
$ss = 2;
$max = 1000;
$arr = array();
echo $max."以内的数组为:";
while($ss < $max):
$boo = false;
foreach($arr as $value):
if($ss % $value == 0):
$boo =true;
break;
endif;
endforeach;
if(!$boo):
echo $ss." ";
$arr[count($arr)] = $ss;
endif;
$ss++;
endwhile;
6)跳出循环的几种方式
break; //用以跳出循环
break $num; //指定跳出几重循环
continue; //不如break强大,只能终止本次循环
while(true){
$tmp = rand(1,20);
echo $tmp." ";
if($tmp == 10) {
echo "<p>变量等于10,终止循环。";
break;
}
}