PHP之流程控制
 流程控制语句对于任何一门编程语言来说都是至关重要的,它能够控制程序的执行顺序。合理使用这些控制结构可以使程序流程清晰、可读性强,从而提高开发效率。
条件控制语句
if语句
 if语句的格式:
<?php
	if(表达式){
		语句1;
		语句2;
		...
	}
?>	
 
流程控制图:
代码示例:判断随机数是不是偶数
<?php
    $num = rand(1,20);
	echo '$num = '.$num;
	if($num % 2 == 0){
        echo "<br>$num 是偶数。";
    }
?>
 
运行结果:
$num = 4
4 是偶数。
 
if…esle语句
 if…else语句的格式:
<?php
    if(表达式){
        语句;
    }else{
        语句;
    }
?>
 
流程图
代码示例:判断随机数是偶数还是奇数
<?php
    $num = rand(1,20);
	echo '$num = '.$num;
	if($num % 2 == 0){
        echo "<br>$num 是偶数。";
    }else{
        echo "<br>$num 是奇数。";
    }
?>
 
运行结果:
$num = 20
20 是偶数。
 
elseif语句
 elseif语句的格式:
<?php
    if(表达式1){
        语句1;
    }elseif(表达式2){
        语句2;
    }
	else{
        语句n;
    }
 
流程图:
代码示例:判断某个日期是该月的哪一旬
<?php
	date_default_timezone_set('Asia/Shanghai');					// 设置时区
	$month = date("n");											// 设置月份变量$month
	$today = date("j");											// 设置日期变量$today
	if($today > 1 and $today <= 10){							// 判断日期变量是否在1~10之间
		echo "今天是".$month."月".$today."日,是本月上旬";		// 如果是说明是上旬
	}elseif($today > 10 and $today <= 20){						// 否则判断日期变量是否在11~20之间
		echo "今天是".$month."月".$today."日,是本月中旬";		// 如果是,说明是中旬
	}else{														// 如果上面两个判断都不符合要求,则输出默认值值
		echo "今天是".$month."月",$today."日,是本月下旬";		// 说明是本月的下旬
	}
?>
 
运行结果:
今天是2月10日,是本月上旬
 
switch语句
switch语句格式:
<?php
    switch(变量或表达式){
        case 常量表达式1:
			语句1;
			break;
		case 常量表达式2:
            ...;
        case 常量表达式n;
            语句n;
            break;
        default:
            语句n+1;
    }
?>
 
流程图:
代码示例:选择第三方登录接口
<?php
	// 接收传递的参数,并使用三元运算符判断赋值
	$type = isset($_GET['type'] ? $_GET['type'] : '';
	// 根据参数值,执行不同的操作
	switch($type){
		case 'qq':
			echo "执行qq登录流程";
			break;
		case 'wechat':
			echo "执行微信登录流程";
			break;
		case 'weibo':
			echo "执行微博登录流程";
			break;
		default:
			echo "执行普通登录流程";
	}
?>
 
运行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YzTx6kUJ-1608643701049)(…/…/…/MarkdownImgs/编程学习/PHP学习/PHP学习笔记/switch语句代码示例运行结果.png)]
注:
- switch语句在执行时,即使遇到符合要求的case语句,也会继续往下执行,直到switch语句结束。为了避免这种浪费时间和资源的行为,一定要在每个case语句段后加上break语句。这里break语句的意思 是跳出当前case语句。
 
循环控制语句
for循环语句
for循环语法格式:
<?php
    for(初始化表达式;条件表达式;迭代表达式){
        语句;
    }
?>
 
- 初始化表达式:在第一次循环时无条件取一次值;
 - 条件表达式:在每次循环开始前求值,如果值为真,则执行循环体里面的语句,否则跳出循环,继续往下执行;
 - 迭代表达式:在每次循环后被执行。
 
for循环语句流程控制图:
代码示例:
<?php
    $sum = 1;
	for($i = 1;$i <= 100;$i++){
        $sum *= $i;
    }
	echo "100的阶乘是".$sum;
?>
 
运行结果:
100的阶乘是9.3326215443944E+157
 
注:
- 在for循环中,无论是采用循环变量递增还是递减的方式,前提是一定要保证循环能够结束,死循环将导致程序崩溃。
 
while循环语句
while循环语句格式:
<?php
    while(expr){
        statement;
    }
?>
 
while循环流程控制图:
代码示例:
<?php
    $num = 1;
	$str = "10以内的偶数为:";
	while($num <= 10){
        if($num % 2 == 0){
            $str .= $num." ";
        }
        $num++;
    }
	echo $str;
?>
 
运行结果:
10以内的偶数为:2 4 6 8 10 
 
do…while循环语句
do…while循环语句格式:
<?php
    do{
        statement;
    }while(expr);
?>
 
do…while循环流程控制图:
代码示例:
<?php
    $num = 1;
	while($num != 1){
        echo "执行while循环";
    }
	
	do{
        echo "执行do...while循环";
    }while($num != 1);
?>
 
运行结果:
执行do...while循环
 
跳转语句
 跳转语句使循环语句使用的范围更加宽泛。
break语句
 break关键字可以终止当前的循环。常用于while、do…while、for、switch控制语句中。
代码示例:使用break语句终止循环
<?php
    while(true){
        $tmp = rand(1,20);
        echo $tmp." ";
        if($tmp == 10){
            echo "<p>变量等于10,终止循环</p>";
            break;
        }
    }
?>
 
运行结果:
1 9 18 17 2 7 12 9 20 10 
变量等于10,终止循环
 
continu语句
 continu关键字,终止本次循环而进入到下一次循环。continue也可以指定跳出几重循环。
代码示例:
<?php
    for($i = 0;$i < 5;++$i){
        if($i == 2){
            continue;
        }
        echo "$i\n";
    }
?>
 
运行结果:
0 1 3 4 
                
                    
                
                
            
        
浙公网安备 33010602011771号