PHP第十一课:PHP的流程控制
PHP的流程控制
程序总是由若干条语句组成。
从执行方式上看,语句的控制结构分为以下三种:
1. 顺序结构:从第一条语句到最后一条语句完全顺序执行;
2. 选择结构:根据用户输入或语句的中间结果去执行若干任务;
3. 循环结构:根据某条条件重复地执行某项任务若干次,或直到达成目标。
PHP中 有三种控制语句用以实现选择结构与循环结构:
1. 条件控制语句:if、else、elseif和switch;
2. 循环控制语句:foreach、while、do while和for;
3. 转移控制语句:break、continue和return。
条件控制语句主要有if、ii...else、elseif(有时也可以写成else if)、switch四种。
if语句:几乎所有语言都包括if语句。格式为:
if(条件满足) {执行语句}
if:条件只有一个
<meta charset="UTF-8"/>
<?php
$num = rand(1,20);
if($num%2 == 0){
echo "\$num = $num";
echo "<br/>$num 是偶数";
}
?>if(条件满足) {执行语句} else {执行语句}
if...else:条件有俩
<?php
$a = 59;
if($a>=60){
echo "及格";
}else{
echo "不及格";
}
?>if(条件满足) {执行语句} elseif {执行语句} elseif {执行语句} ....... else {执行语句}
elseif:条件有多个
<?php
$a = 59;
if($a>=60){
if($a==100){
echo "满分";
}else if($a>=90){
echo "优秀";
}
else if($a>=70){
echo "良好";
}
else{
echo "及格";
}
}else{
echo "不及格";
}
?><?php
date_default_timezone_set("PRC");
$month = date("n");
$today = date("j");
if ($today>=1 && $today <= 10){
echo "今天是".$month."月".$today."日上旬";
}elseif ($today>=11 && $today<= 20) {
echo "今天是".$month."月".$today."日中旬";
}else{
echo "今天是".$month."月".$today."日下旬";
}
?>switch(条件) {
case 1:语句;break;
case 2:语句;break;
case 3:语句;break;
default:语句;break;
}
switch:条件多个 当条件多个时,elseif与switch语句作用相同。但为了避免语句繁杂冗长,使用switch语句。
<?php
$level = 3;
switch($level){
case 3:
echo "赋予管理员权限";
break;
case 2:
echo "赋予新闻管理权限";
break;
case 1:
echo "赋予商品类目添加权限";
break;
default:
echo "赋予普通用户权限";
}
?>$a = 59;
switch($a){
case $a==100:
echo "满分";
break;
case $a>=90:
echo "优秀";
break;
case $a>=70:
echo "良好";
break;
case $a>=60:
echo "及格";
break;
default:
echo "不及格";
}2. 循环控制语句主要有while、for、do while三种。
for
<?php
for($i=0;$i<5;$i++){
echo "数字是:$i <br/>";
}
//循环 相同或相仿的事情,反复的发生(某个条件成立的时候,反复去做)
//要求:输出100个水平分割线
for($i=1;$i<=100;$i++){
echo "数字是$i <hr/>";
}
?>while
<?php
$i=0;
while($i<5){
echo "数字是:$i <br/>";
$i++;
}
?><?php
$num = 1;
$str = "10 以内的偶数为:";
while ($num <= 10) {
if ($num % 2 == 0) {
$str.=$num." ";
}
$num++;
}
echo $str;
?>do...while
do...while 是 while循环的另一种形式,比while循环多循环一次。
<?php
$i=0;
do{
echo $i."<br/>";
$i++;
}while($i<5);
?>while 和 do while的区别?
while 先判断再执行
do while 先执行再判断
$i=100;
while($i<100){
echo "$i 我执行了这个语句<br/>";
$i++;
}
echo "<hr/>";
$x=100;
do{
echo "$x 我执行了这个语句<br/>";
$x++;
}while($x<100);foreach循环:只能用于数组
foreach语句会遍历数组,每一次循环时会将当前数组的值赋给value,同时数组指针向后移动直到数组结束。使用该语句是指针会被自动重置,无需手动。
foreach仅能用于数组,每次循环中,当前单元的键名也会在每次循环中被赋给变量 $key。当前单元的值被赋给 $value 并且数组内部的指针向前移一步。
<?php
$data = array(0=>'陈乐乐',1=>'张帅');
//获取数组中 具体某个位置上的内容
echo $data[1];
echo "<hr/>";
//获取数组中 所有的内容
foreach($data as $key=>$value){
echo $value." ";
}
?>3. 转移控制语句
break:终止循环
<?php
//break跳出 (循环体)
$i = 1;
while($i<=10){
if($i==5){
break;
}
echo "<br/>当前的数是:".$i;
$i++;
}
?>continue:终止此次循环,并继续下一循环,直到循环结束
<?php
//continue 跳出(当次这个循环)
$x = 5;
while($x<=10){
if($x==5){//5跳过不显示
$x++;
continue;
}
echo "<br/>this is num:".$x;
$x++;
}
?>exit:结束程序执行,它可以出现在程序的任何地方!
<?php
//exit结束程序执行
$num = 100;
while($num>=1){
//当$num大于等于95(在100到95这个区域内)
// 100 99 98 97 96 95
if($num>=95){
echo "<br/>当前这个数是:".$num;
}else{
exit;//结束程序执行
}
$num--;
}
?>包含文件
//include(文件对应的路径)
//include_once()
//require()
//require_once()
如果引入文件不存在。
inclue会产生一个警告,程序会继续运行。
require会产生一个致命错误,程序会停止运行。
include("qianchang.php");
//require("qiancang.php");
echo "哈哈";
