PHP流程控制

本文深入讲解PHP中的流程控制语句,包括顺序、分支和循环结构。涵盖了if、switch、while、do-while及for循环的使用场景和语法,并探讨了嵌套分支和特殊流程控制语句的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、PHP流程控制语句
流程控制对于任何一门语言来说,都是至关重要的,
在编写程序时,我们经常会希望为不同的决定执行不同的动作,这时就可以使用流程控制语句来实现:
影响用户的输入为不同的决定或者输入执行不同的程序
(一)顺序结构
顺序结构是最基本的结构方式,各流程依次按顺序执行
顺序结构中,所有代码都将执行一次
PHP中,顺序结构的语句一般是一些赋值语句、输出语句等
(二)分支结构
选择结构就是对给定条件进行判断,条件为真是执行一个分支,条件为假时执行另一个分支.
根据条件执行结果改变程序执行顺序
1.单路分支
成立执行,不成立继续往下走
if(条件){
条件成立则执行;
}
if(条件){
执行代码段;
}

<?php
$v1 =10;
$v2=5;
if($v1>$v2){
	echo "v1大于v2的";
}
if($v1>$v2){
	$v2++;
	$v1 = $v2++;
	$v2++;
	echo $v1;
}
var_dump($v1<$v2);
?>

2.双路分支
if(条件){
条件成立则执行;
}else{
不成立执行;
}

<?php
$a = 10;
$b = 5;
if($a>$b){
	echo $a.'大于'.$b;
}else{
	echo $a.'小于'.$b;
}
?>

3.多路分支
互斥结构,只要进入一个就不会进入其他的分支
if(条件){
条件成立则执行;
}elseif(条件){
条件成立则执行;
}else{
不成立执行;
}

<?php
date_default_timezone_set('Asia/Shanghai');
$hour = date("H");
if($hour>=6 && $hour<9){
	echo "早上好";
}else if($hour>=9 && $hour<12){
	echo "上午好";
}else if($hour>=12 && $hour<14){
	echo "中午好";
}else if($hour>=14 && $hour<17){
	echo "下午好";
}else if($hour>=17 && $hour<19){
	echo "傍晚好";
}else{
	echo '夜里好';
}
?>
<?php
date_default_timezone_set('Asia/Shanghai');
$hour = date("H");
if($hour<6){
	echo "凌晨好";
}else if($hour<9){
	echo "早上好";
}else if($hour<12){
	echo "上午好";
}else if($hour<14){
	echo "中午好";
}else if($hour<17){
	echo "下午好";
}else if($hour<19){
	echo "傍晚好";
}else if($hour<22){
	echo "晚上好";
}else{
	echo '夜里好';
}
?>

switch(表达式或者变量) //适用于整数和字符串
{
case label1:
代码块;
break;
case label2:
代码块;
break;
case label3:
代码块;
break;
break;
default:
代码块
}

执行原理:
将表达式进行计算,与case中的值进行比较,如果与case中的值相等,则执行当前case后的代码块,如果不相等,进行下一个比较,否则就用默认的代码块default,break用于执行完代码块后跳出程序执行,避免进行下一个case中;

<?php
date_default_timezone_set("Asia/Shanghai");
$week = date("D",time());
echo $week;
switch ($week) {
	case 'Mon':
		echo "今天是周一";
		break;
	case 'Tue':
		echo "今天是周二";
	break;
	case 'Wed':
		echo "今天是周三";
	break;
	case 'Thu':
		echo "今天是周四";
	break;
	case 'Fri':
		echo "今天是周五";
	break;
	
	default:
		echo  "周末";
		break;
}
?>

如果判断一个范围使用if else ,如果是单个值匹配,使用switch case;
4.嵌套分支

if(){
If(){
}else{
If(){
}
}
}else{
If(){
}else{
switch(){
}
}

}
<?php
$sex = $_GET['sex'];
$age = $_GET['age'];
if($sex=='nan'){
	if($age>=60){
		echo "这个男士已经退休了".($age-60)."年了";
	}else{
		echo "这个男士还在工作,还有".(60-$age)."年才退休<br/>";
	}
}else{
	if($age>=55){
		echo "这个女士已经退休了".($age-55)."年了";
	}else{
		echo "这个女士还在工作,还有".(55-$age)."年才退休<br/>";
	}
}
?>

二、PHP流程控制之循环结构
循环结构
计算机最擅长的事情是自动的重复的执行任务,如果某些任务需要以相同的方式多次执行,就可以用到循环语句来重复程序里的某些部分.php中最简单的就是while循环,
(一)while循环
只要指定条件为真,就执行循环语句 设定一个布尔型条件,只要条件为真就反复执行代码段

只要条件为真,就执行循环语句
while(条件){
条件为真执行的代码; //反复执行,直到条件为假
}
首先执行一次代码,然后再检查条件,为真就循环
即使条件在第一次就失败了,它也会至少执行一次语句
do {
为真执行的代码
}while(条件为真);

<?php
$num=0;
while($num<30){
	$num++;
	echo "这是第".$num."次执行的结果";
}
do{
	$num++;
	echo "这个数字为:".$num;
}while($num<5);
?>
<?php
echo '<table border="1">';
echo '<h1>循环表格</h1>';
$row = 1;
while($row<=9){
	echo "<tr>";
	$col = 1;
	while($col<=9){
		echo '<td>'.$col.'x'.$row.'='.($col*$row).'</td>';
		$col++;
	}
	echo "</td>";
	$row++;
}
echo '</table>';
?>

(二)for循环
如果提前确定了脚本的循环次数,就可以使用for循环
for(初始化条件;条件表达式;增量){
循环的代码;
}

<?php
for($i=0;$i<=8;$i++){
	echo "<hr>循环到了第".$i."层";
}
?>

<?php
for($i=1;$i<=100;$i++){
   if($i%3==0 && $i%5==0){
   	echo "三五<hr>";
   }else if($i % 3 ==0){
   	echo "三<hr>";
   }else if($i % 5 ==0){
   	echo "五<hr>";
   }else{
   	echo $i."<hr/>";
   }
}
?>

foreach循环:只用于数组,循环数组的每个键值对
foreach($array as value)执行的代码块;每一次循环都会将当前循环的值赋给变量value){ 执行的代码块; } 每一次循环都会将当前循环的值赋给变量value)value,并且数组指针会逐一移动,知道数组的最后一个元素
foreach在后边的数组章节会详细学习,暂作了解

特殊的流程控制语句
break //退出程序,退出本次循环
continue //跳过该次循环,进入下一次循环
return //结束函数 返回函数返回值

<?php
for($i=1;$i<=100;$i++){
	if($i==10){
		continue;
	}
	echo $i.'#<br/>';
}
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值