PHP语言结构语句------11

版权声明:俗世凡人行(释) https://blog.csdn.net/weixin_41887155/article/details/85727204

目录

一. PHP-顺序结构

二: PHP条件结构之if…else…

三: PHP条件结构之if…else if…

四: PHP条件结构之if…else if…else…

五: PHP条件结构之switch…case…

六: PHP条件结构之switch…case…中的break

七: PHP中循环结构之while循环语句

八: PHP中循环结构之do while循环语句

九: PHP中循环结构之while与do…while语句的区别

十: PHP中循环结构之do…while语句的运用优势举例

十一: PHP中循环结构之for循环语句

十二: PHP中循环结构之foreach循环语句

十三: PHP中结构嵌套之条件嵌套

十四: PHP中结构嵌套之循环嵌套

十五: PHP中结构嵌套之循环结构与条件结构嵌套


一. PHP-顺序结构

1.顺序结构就像一条直线,按着顺序一直往下执行。

2.我们编写的代码默认都是按照顺序结构执行的。

3.eg:

<?php
    $shoesPrice = 49; //鞋子单价
    $shoesNum = 1; //鞋子数量
    $shoesMoney = $shoesPrice * $shoesNum;
	$shirtPrice = 99; //衬衣单价
	$shirtNum = 2; //衬衣数量
	$shirtMoney = $shirtPrice * $shirtNum;
	$orderMoney = $shoesMoney +  $shirtMoney;
	echo $orderMoney ;  //输出总价格:  247
?>

二: PHP条件结构之if…else…

1. PHP中的“if…else…”语法,如下:

<?php
if(条件){
     //分配服务器干的任务A
}else{
     //分配服务器干的任务B
}
?>

  注意: 通过条件判断,若返回值为布尔值TRUE,则执行任务A,若返回值为FALSE,则执行任务B

2.些酒店为了促销,吸引顾客,可以给当天生日的人八折优惠,这时可以使用条件结构。

<?php
    date_default_timezone_set('Asia/ShangHai');
    $today = date('m-d',time());//获取当天日期
	$birthday = "01-03";//生日
	$money = 238;//消费金额
	$discount = 0.8;//八折优惠

	if($today == $birthday)
	{
		$money = $money * $discount;
	}
	else
	{
	    $money = $money * 1;
	    
	}	

	echo $money;  //输出:  190.4
?>

三: PHP条件结构之if…else if…

1.PHP中的“if…else if…”语法,如下:

<?php
if(条件一){
     //分配服务器干的任务A
}else if(条件二){
     //分配服务器干的任务B
}
?>

  注意:通过条件一判断,若返回值为布尔值为TRUE,则执行任务A,若返回值为FALSE,则判断条件二,若返回值为布尔值TRUE,则执行任务B,否则既不执行任务A,也不执行任务B。服务器会继续往下执行其他任务。

2.eg: 在妇女节那个月,需要给女员工发300元奖金。这时就可以使用“if…else if…”来完成此任务。

<?php
    $totalMoney = 0;//总工资
    $basicMoney =  2000;//基本工资
	$sex = "女";
	if($sex == "男"){	
		$totalMoney = $basicMoney  + 0;// 男的没奖金
	}else if($sex == "女"){	
		$totalMoney = $basicMoney  + 300;// 女的有奖金300元
	}
	echo $totalMoney;  //页面输出: 2300
?>

四: PHP条件结构之if…else if…else…

1.PHP中的“if…else if…else…”语法,如下:

<?php
if(条件一){
     //分配服务器干的任务A
}else if(条件二){
     //分配服务器干的任务B
}else{
     //分配服务器干的任务C
}
?>

  注意:通过条件一判断,若返回值为布尔值TRUE,则执行任务A,若返回值为FALSE,则判断条件二,若返回值为布尔值TRUE,则执行任务B,否则既不执行任务A,也不执行任务B,执行任务C。

2.eg: 如果我们需要提供上课的提示信息,假设如果为周一则上午有课,如果为周三则下午有课,其它时间没课。

<?php
date_default_timezone_set('asia/shanghai');
$week = date("w");//获取当天星期几
$info = "";//提示信息
if($week == 1){
    $info = "上午有课";
}else if($week == 3){
	$info = "下午有课";	 
}else{
	$info = "今天没课";
}
echo $info; //输出 今天没课
?>

五: PHP条件结构之switch…case…

1.PHP中的“switch...case...”语法,如下:

<?php
switch (条件)
{
case 条件值一:
  //任务一
  break; 
case 条件值二:
  //任务二
  break;
default:
  //默认任务
}
?>

  注意: 首先判断条件,若条件的返回值为条件值一,则执行任务一,若条件返回的值为条件值二,则执行任务二,若条件的返回值既不是条件值一也不是条件值二,则执行默认任务。break的作用是结束switch(后面会有专门举例说明),使用 switch 语句可以避免冗长的 “if..else if..else”代码块。

2.eg:大家做梦都想中个一百万吧,我也想,但是咋想都想不来:-(只好自己写个抽奖程序,自娱自乐咯。这个抽奖应用,随机生成一个数字,数字范围为1至5(这样中将几率高^_^),假设是1表示一等奖,2是二等奖,3是三等奖

<?php
$num = rand(1,5);//获取1至5的随机数
$info = "";//提示信息
switch($num){
case 1:    
		$info = "恭喜你!中了一等奖!";
		break;
case 2:	
		$info = "恭喜你!中了二等奖!";
		break;
 case 3:	
		$info = "恭喜你!中了三等奖!";
		break;
default:	
		$info = "很遗憾!你没有中奖!";
}
 echo $info; //输出: 恭喜你!中了一等奖!
?>

六: PHP条件结构之switch…case…中的break

1.break的作用是阻止代码进入下一个case 中继续执行

2.eg:

<?php
//A例子
$num = 2;
$sum  = 10; 
switch($num){
    case 1:
		$sum = $sum  + 10;
	break;	
	case 2:
		$sum = $sum  + 10;
	break;	
 	case 3:
		$sum = $sum  + 10;
	break;	
	default:
		$sum = $sum  + 10;
}
 echo "A例子的值是:".$sum."<br />";  //输出:  A例子的值是:20
//B例子
$num = 2;
$sum  = 10; 
switch($num){
	case 1:
		$sum = $sum  + 10;
	case 2:
		$sum = $sum  + 10;
	case 3:
		$sum = $sum  + 10;
	default:
		$sum = $sum  + 10;
}
 echo "B例子的值是:".$sum."<br />"; //输出: B例子的值是:40  
?>

七: PHP中循环结构之while循环语句

1.循环结构就是在符合的条件下,重复执行某项任务;

2.在PHP中,while循环语句如下:

<?php
while(条件){ 
     //执行任务
}
?>

  注意:首先判断某个条件是否符合(条件返回值是否为TRUE),若符合则执行任务,执行完毕任务,再判断条件是否满足要求,符合则重复执行此任务,否则结束任务

3.eg: 也许你玩过虚拟小宠物,有时小宠物饿了,就需要喂食。假设初始化小宠物饿的时候,体力数字为12,当达到100的时候就饱了,我们使用随机数,模拟喂食小宠物小面包恢复的体力值,于是通过 while循环,我们可以模拟喂食小宠物的过程(偷偷告诉你,每次喂食的次数可不一样哦)。

<?php
$sum = 12;//小宠物当前的饥饿程度
echo "我饿啦:-(";
echo "<br />";
while($sum<100)
{//小宠物的饥饿程度到100,表示小宠物吃饱啦,不用继续喂了,没吃饱继续喂食
    $num = rand(1,20);//随机数,模拟喂食小宠物的小面包
	$sum = $sum + $num; //小宠物吃小面包
	echo "我还没吃饱呢!";
	echo "<br />";
}
echo "终于吃饱啦^_^";
?>

效果图:

我饿啦:-(
我还没吃饱呢!
我还没吃饱呢!
我还没吃饱呢!
我还没吃饱呢!
我还没吃饱呢!
我还没吃饱呢!
我还没吃饱呢!
我还没吃饱呢!
终于吃饱啦^_^

八: PHP中循环结构之do while循环语句

1.在PHP中循环语句还有另一种:do...while循环语句语法如下:

<?php
do{ 
     //执行任务
}while(条件)
?>

首先执行任务(上面while语句是先判断条件是否成立,再执行任务),执行任务完毕,判断某个条件是否符合(条件返回值是否为TRUE),若符合则再次执行任务,执行完毕任务,继续判定条件。

2.eg: 例如需要围绕足球场跑10圈,初始化变量为1,首先跑第一圈,接着变量递增1,然后判断循环条件,变量是否小于10,满足则继续跑剩余的圈数,直到跑完第10圈。

<?php
$i =  1 ; //从第1圈开始跑
do{  //跑10圈
    echo "在跑第".$i."圈。"."<br />";
	$i++;
}
while($i<=10);
?>

效果:

在跑第1圈。
在跑第2圈。
在跑第3圈。
在跑第4圈。
在跑第5圈。
在跑第6圈。
在跑第7圈。
在跑第8圈。
在跑第9圈。
在跑第10圈。

九: PHP中循环结构之while与do…while语句的区别

1.while与do…while循环语句的区别是,while先判断条件是否成立,后执行循环,do...while先执行一次任务,再判断是否继续执行循环,也就是说do...while至少会执行一次任务。当条件为FALSE时,while中的任务会一次也不执行,do...while中的任务会执行1次。

2.eg:通过A例子和B例子让while与do…while语句PK一下

<?php
    //A例子
	$num = 2;
	$sum  = 10; 
	while($num>3){
		$sum = $sum  + 10;
	}
	echo "A例子的结果:".$sum."<br />";  //A例子的结果:10
	//B例子
	$num = 2;
	$sum  = 10;			
	do{
		$sum = $sum  + 10;
	}while($num>3);
	echo "B例子的结果:".$sum."<br />"; //B例子的结果:20
?>

十: PHP中循环结构之do…while语句的运用优势举例

1.while和do...while可以根据具体情况选用。假设有一种棋类游戏,首先掷骰子,若不为6,前进骰子的点数的步长;若为6,前进骰子的点数的步长,并可以再掷一次。说白了就是有的时候,必须先执行一次动作,然后再根据判断进行下一步,此时do…while更合适;

2.eg:模拟一下棋类游戏

<?php
    //while例子
	$sum  = 0; 
	$num = rand(1,6); //获取1至6的随机数,模拟掷骰子
	$sum = $sum  + $num;//前进步长
	while($num==6){
		$num = rand(1,6);//获取1至6的随机数,模拟掷骰子
		$sum = $sum  + $num;//前进步长
	};
	echo "while例子执行完毕,前进:".$sum ."<br />";   //while例子执行完毕,前进:4
	//do...while例子
	$sum  = 0; 
	do{
		$num = rand(1,6);//获取1至6的随机数,模拟掷骰子
		$sum = $sum  + $num;//前进步长
	}while($num==6);
	echo "do...while例子执行完毕,前进:".$sum ."<br />"; //do...while例子执行完毕,前进:2
?>

  注意: 从代码的结构和可读性角度,在该例子中使用do...while更合适。

十一: PHP中循环结构之for循环语句

1.在PHP中还有一种循环语句,for循环语句结构如下:

<?php
for(初始化;循环条件;递增项){
      //执行任务
}
?>

  注意: for 语句中,“初始化”在循环开始前无条件求值一次,“循环条件”在每次循环开始前求值。如果值为 TRUE,则继续循环,执行循环体语句(执行任务)。如果值为 FALSE,则终止循环。“递增项”在每次循环之后被求值(执行)。其常用于循环执行代码块指定的次数。

2.eg: 我们要计算从1加到100的和。首先初始化一个递增变量为1,及初始化累加和为0,接着设置循环条件是变量是否小于等于100,小于100执行任务累加求和,递增项为变量递增1。

<?php
//for语句写法
for($i = 1,$sum = 0;$i<=100;$i++)
{
    $sum = $sum + $i; //	累加求和
}
echo "for语句的运行结果:".$sum."<br />" ; //for语句的运行结果:5050

//while语句写法
$i =  1 ; // 从1开始累加
$sum = 0; //初始化和为0
while($i<=100){  //判断是否小于100
	$sum = $sum + $i; //	累加求和
	$i++; //递增1
}
echo "while语句的运行结果:".$sum."<br />" ; //while语句的运行结果:5050
?>

十二: PHP中循环结构之foreach循环语句

1.在PHP中foreach循环语句,常用于遍历数组,一般有两种使用方式:不取下标、取下标。 



<?php
 //只取值,不取下标
 foreach (数组 as 值){
//执行的任务
}

 //同时取下标和值
 foreach (数组 as 下标 => 值){
//执行的任务
}
?>

2.eg:有一组以学号为下标,姓名为值的数组,这时候需要遍历数组的姓名。

<?php
$students = array(
'2010'=>'令狐冲',
'2011'=>'林平之',
'2012'=>'曲洋',
'2013'=>'任盈盈',
'2014'=>'向问天',
'2015'=>'任我行',
'2016'=>'冲虚',
'2017'=>'方正',
'2018'=>'岳不群',
'2019'=>'宁中则',
);//10个学生的学号和姓名,用数组存储

//使用循环结构遍历数组,获取学号和姓名  
foreach($students as  $v)
{ 
    echo $v;//输出(打印)姓名
	echo "<br />";
}
echo "<hr />";

foreach($students as  $a=>$s)  //$a,$s这个十=是键值对形式,名称可以随便去一个变量名
{ 
	echo $a;//输出打印学号
    echo $s;//输出(打印)姓名   
	echo "<br />";
}

?>

效果:

令狐冲
林平之
曲洋
任盈盈
向问天
任我行
冲虚
方正
岳不群
宁中则

2010令狐冲
2011林平之
2012曲洋
2013任盈盈
2014向问天
2015任我行
2016冲虚
2017方正
2018岳不群
2019宁中则

3.eg:

<?php
$students = array(
'2010'=>'令狐冲',
'2011'=>'林平之',
'2012'=>'曲洋',
'2013'=>'任盈盈',
'2014'=>'向问天',
'2015'=>'任我行',
'2016'=>'冲虚',
'2017'=>'方正',
'2018'=>'岳不群',
'2019'=>'宁中则',
);//10个学生的学号和姓名,用数组存储

//使用循环结构遍历数组,获取学号和姓名  
foreach($students as $key =>$v)
{ 
    echo $key.":".$v;//输出(打印)学号:姓名
	echo "<br />";
}
?>

效果:

2010:令狐冲
2011:林平之
2012:曲洋
2013:任盈盈
2014:向问天
2015:任我行
2016:冲虚
2017:方正
2018:岳不群
2019:宁中则

十三: PHP中结构嵌套之条件嵌套

1.条件结构嵌套就像回家的路上会遇到多个十字路口。

2.eg:假设在发3月工资的时候,不仅判定性别,还要判定男性是否有房,没有房,可以发放住房补贴,对于女性,判定是否怀孕,怀孕还有怀孕补贴。

<?php
    $totalMoney = 0;//总工资
	$basicMoney =  300;//基本工资
	$sex = "男";
	$noHouse = TRUE; //是否有房
	$houseMoney =  150;//住房补贴
	$isPregnancy = TRUE; //是否怀孕
	$pregnancyMoney =  100;//怀孕补贴
	if($sex == "男")
	{
		$totalMoney = $basicMoney  + 0;// 男的没奖金
	if($noHouse)	
		{
			$totalMoney = $totalMoney  + $houseMoney;
		} 
	}
	else if($sex == "女")
	{
		$totalMoney = $basicMoney  + 300;// 女的有奖金300元
	if($isPregnancy)	
		{
			$totalMoney = $totalMoney  + $pregnancyMoney;
		} 
	}
	echo $totalMoney; //450
?>

十四: PHP中结构嵌套之循环嵌套

1.循环结构嵌套,就是类似于跑多个足球场,例如假设有两个足球场,一个大足球场,一个小足球场,在大足球场跑一圈后,再到小足球场跑几圈,跑完几圈后,再到大足球场中继续跑。在遍历二维数组中很常用。

2.eg:通过二维数组,保存了学号、姓名和成绩,可以通过两个循环嵌套,遍历出学号和姓名

<?php
 $students = array(
'2010'=>array('令狐冲',"59"),
'2011'=>array('林平之',"44"),
'2012'=>array('曲洋',"89"),
'2013'=>array('任盈盈',"92"),
'2014'=>array('向问天',"93"),
'2015'=>array('任我行',"87"),
'2016'=>array('冲虚',"58"),
'2017'=>array('方正',"74"),
'2018'=>array('岳不群',"91"),
'2019'=>array('宁中则',"90"),
);//10个学生的学号、姓名、分数,用数组存储
 
foreach($students as $key=>$val)
{ //使用循环结构遍历数组,获取学号 
     echo $key; //输出学号
	 echo ":";
	 //循环输出姓名和分数
foreach($val as $v)	 
	{
		echo $v; 
	 }
	 echo "<br />";
}
?>

效果:

2010:令狐冲59
2011:林平之44
2012:曲洋89
2013:任盈盈92
2014:向问天93
2015:任我行87
2016:冲虚58
2017:方正74
2018:岳不群91
2019:宁中则90

十五: PHP中结构嵌套之循环结构与条件结构嵌套

1.有时候在执行任务时,对于一些特殊的任务还需要进行额外处理,这个时候就会将循环结构与条件结构嵌套使用。

2.eg: 有个学生数组存储了学号和姓名,我们需要查找学号为“2014”的学生姓名,这时候我们就需要遍历该数组,并判定学号是否为“2014”。

<?php
 $students = array(
'2010'=>'令狐冲',
'2011'=>'林平之',
'2012'=>'曲洋',
'2013'=>'任盈盈',
'2014'=>'向问天',
'2015'=>'任我行',
'2016'=>'冲虚',
'2017'=>'方正',
'2018'=>'岳不群',
'2019'=>'宁中则',
);//10个学生的学号和姓名,用数组存储
$query = '2014';
//使用循环结构遍历数组,获取学号和姓名
foreach($students as $key =>$v)
{ 
    //使用条件结构,判断是否为该学号
if($key == $query)	
	{ 
		echo $v;//输出(打印)姓名:  向问天
		break;//结束循环(跳出循环)
	}
}
?>

猜你喜欢

转载自blog.csdn.net/weixin_41887155/article/details/85727204