本文最后更新于 2024-03-19,文章内容可能已经过时。

PHP流程控制语句知识点:

一、条件判断语句:

1. if语句

这是个选择语句,代码如下

# 基础语法
if (条件) {//这里的条件是一个bool类型的值(true,false),当这里的条件为true时进入大括号内(执行大括号内的代码块)。
  代码块;//代码块内写想要执行的代码
}

# if...else 除了基础语法的if语句还有一个适用于不属于条件1的其他结果,就是if...else...
if(条件){
    代码块1;//代码块1内写想要执行的代码
}else{
    代码块2;//此处写当条件的结果为false时,进入else的代码块。
}

# if...elseif...else... 这个就用于多条件判断(根据两个以上的条件执行不同的代码)
if (条件1) {
  条件1为 true 时执行的代码;
} elseif (条件2) {//当代码运行到此处就代表条件1的结果为false,再判断条件2的结果,如果也为false那就继续往下走(条件2的方法体不执行!!)
  条件2为 true 时执行的代码;
} else {
  条件为 false 时执行的代码;
}

# 例子:
$time = rand(0,23);//这里的作用是调用rand方法生成随机数(0-23之间)-------(1)
if($time>=7&&$time<12){//这里的作用是判断时间在7-12点之间 ---------------(2)
    echo '早上好,又是美好的一天';
}elseif($time>=12&&$time<2){//同(1)
    echo '中午啦,起来重睡';//同(2)
}elseif($time>=2&&$time<8){//同(1)
    echo '下午了,想想晚上吃啥';//同(2)
}else{//当代码运行到这里代表上面条件都为false,此时执行else中的代码。
    echo '这都几点了,还不睡???'//同(2)
}

通过上述模板和例子,我们可以明白if选择语句的基础用法,同时也明白每个区域的作用。

注:在php中if的执行语句块为一行的时候,可以神略大括号!

2. switch语句:

如果您希望有选择地执行若干代码块之一,请使用 Switch 语句。使用 Switch 语句可以避免冗长的 if..elseif..else 代码块。

switch要搭配case关键字来使用,但是要注意在代码内有一个异常情况,我介绍完例子会解释

# 标准语法
switch (表达式){//这里的表达式一般为基础数据表达式
case 值1://case关键字用于判断表达式的值是否等于后面的值,若为true则执行冒号(:)后面的代码块,若为false则继续判断
  表达式 = 值1 时执行的代码 ;
  break;  //这个break是个重点,我下面会说
case 值2://...
  表达式 = 值2 时执行的代码 ;
  break;
default://这里代表上面的条件都为true时执行这里的内容,也可以看作“默认执行方法”
  表达式的值不等于 值1 及 值2 时执行的代码;
}

注:当break不写的时候,可能会存在数据穿透的异常,可能会把结果为true后的的所有代码块都执行(在开发中要十分注意)

二、循环控制语句:

3. while循环:

在编写代码时,经常需要反复运行同一代码块。所以我们可以使用循环来重复执行这样的任务,而不是在脚本中添加若干几乎相等的代码块,使整个代码十分臃肿。

  • while - 只要指定条件为真,则循环代码块

示例代码及解释如下

while (条件为真) {
  要执行的代码;
}
# 这个真没啥讲的,举个例子吧
# 比如:康总需要反复往返于郑州和新郑,就是典型的循环结构.假设康总投资这个项目需要往返郑州100次,每次访问都会计数一次.难道写一百遍同样的代码?显然对于智商极高的程序员来说不可能这样处理。
# 示例:

//while后面接布尔值判断,为真执行,为假停止
$count=0;
//循环开始处
while($count < 100){//$count小于100的时候执行,也就是$count为0至99的时候执行.如果$count不小于100了,循环停止执行后续的代码
    echo "这是康总第 $count 次出差";
    PHP_EOL;//这行相当于html中的<br>换行
    //每次执行让$count+1,这样的话,就不会产生$count永远小于100的情况了
    $count++;
}
//循环结束

4. do…while循环:

说说区别吧:do…while与while的语法结构基本一样,也是一个布尔型循环,功能也基本一样.基础语法如下

do{
   代码块;
}while(判断)

do…while与while区别是,它们的值得检查时机不同.
do…while不论while判断是否成立,先执行一次代码块循环语句,保证会执行一次(表达式的真值在每次循环结束后检查)
然而我们之前的while循环会检查条件表达式,结果为true则执行,结果为false则不执行.

$i=0;
do {
  echo $i++;
}while($i<0);
//输出结果是0
//这里涉及到两个知识点
1, 已知$i=0,在while后面的条件判断中,判断条件为$i<0 (结果为false),但是却执行了一次循环,代表了什么?
    代表do...while就算结果是false也最少执行一次。
2, echo $i++ 输出为0,应为 $i++ 的意义是先赋值再自加一(也可见说先传值)

5. for循环:

如果您已经提前确定脚本运行的次数,可以使用 for 循环。基础语法如下

for (表达式1;表达式2;表达式3) {
/*
    1、表达式1是初始化赋值,可以同时赋值多个代码;
    2、表示式2在每次循环开始前求值,如果值为true,则继续循环,执行嵌套的循环语句,如果值为false,则终止循环.
    3、表达式3在每次循环之后被求值.
    4、表达式1和表达式3是可以不在括号内写.
*/
  代码块;
}

# 我举个例子吧,当你需要计算1-100的和
$sum = 0;//初始化一个值用于存储每次循环结束的结果
for($i = $sum;$i <= 100;$i++){//这行的意思是定义了一个变量$i让他等于$sum,为什么第二次循环不把第一次循环结束的$sum再重新赋值给$i?
    						//	因为for循环中表达式一中的初始化赋值只赋值一遍!
    $sum += $i;//+=赋值运算
}
echo $sum;//结果是5050

6. foreach循环:

foreach 循环只适用于数组,并用于遍历数组中的每个键/值 对。

foreach ($array as $value) {
  代码块;
}
//每进行一次循环迭代,当前数组元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。
$phone = array("huawei","vivo","oppo","mi","iphone");//创建数组
foreach($phone as $value) {//数组值赋值给 $value 变量
   echo "Value=" . $value;//打印!
   echo "<br>";//换行
}
# 用的有点少,自己补充一下啊哈!!

三、跳转控制语句:

7. break语句:

break是被用在上面所提的各种循环和switch语句中的。他的作用是跳出当前的语法结构,执行下面的语句。break语句可以带一个参数n,表示跳出循环的层数,如果要跳出多重循环的话,可以用n来表示跳出的层数,如果不带参数默认是跳出本重循环。

就不举例了,很简单的!

8. Continue语句:

continue是用来用在循环结构中,控制程序放弃本次循环continue语句之后的代码并转而进行下一次循环。continue本身并不跳出循环结构,只是放弃这一次循环。如果在非循环结构中(例如if语句中,switch语句中)使用continue,程序将会出错。

太晚了,这个咱就自力更生吧!