前言
本篇博客将会带你继续探索PHP语言的基础语法。本篇内容主要聚焦于PHP的流程控制语句和文件包含语句,掌握这些重要的语法结构将使您能够更好地控制程序流程,并且在开发过程中能够高效地组织和管理代码。
这是本篇文章的脉络图:
一、流程控制语句
1.1 选择结构语句
概念:选择结构语句指的就需要对一些条件作出判断,从而决定执行指定的代码。
1.1.1 if单分支语句
概念:if条件判断语句也被称为单分支语句,当满足某种条件时,就进行某种处理。
举例:只有年龄大于等于18周岁,才输出已成年,否则无输出。
<?php $age=1; if($age >= 18){ echo'你已经成年!'; } ?>
1.1.2 if…else语句
概念:if…else语句也称为双分支语句,当满足某种条件时,就进行某种处理,否则进行另一种处理。
举例:判断一个学生的年龄,大于等于18岁则是成年人,否则是未成年人。
题目:首先使用rand()函数生成一个1,50之间的数,然后条件判断这个数是不是偶数,如果是偶数,条件表达式为真,则输出“变量$num 是偶数”,相反,条件表达式为假,输出“变量$num 是奇数”
注:rand()函数的作用是取得一个随机的整数。
<?php $num = rand(1, 50); // 生成1到50之间的随机数 if ($num % 2 == 0) { // 使用取模运算判断是否为偶数 echo "变量$num 是偶数"; } else { echo "变量$num 是奇数"; } ?>
三元运算符:又称为三目运算符,它也可以完成if…else语句的功能。
格式:
$condition ? $value_if_true : $value_if_false;
$condition
是一个需要求值的条件表达式。- 如果
$condition
为真,即满足条件,那么$value_if_true
的值将被返回。 - 如果
$condition
为假,即不满足条件,那么$value_if_false
的值将被返回。
例如:
$score = 80; $result = $score >= 60 ? '及格' : '不及格'; echo $result; // 输出:及格
在上述例子中,我使用三元运算符判断变量 $score
是否大于等于 60。如果 $score
大于等于 60,即满足条件,那么返回值为 '及格'
。否则,返回值为 '不及格'
。最后,将返回值赋给 $result
并输出。
1.1.3 if…elseif…else语句
概念:if…elseif…else语句也称为多分支语句,用于针对不同情况进行不同的处理。
举例:对一个学生的考试成绩进行等级的划分,若分数在90~100分为优秀,分数在80~90分为优秀为良好,分数在70~80分为中等,分数在60~70分为及格,分数小于60则为不及格。
例如:
<?php $cj=rand(1,100); if($cj>=90){ echo "该同学成绩为$cj 等级:优秀"; }elseif($cj>=80){ echo "该同学成绩为$cj 等级:良好"; }elseif($cj>=70){ echo "该同学成绩为$cj 等级:中等"; }elseif($cj>=60){ echo "该同学成绩为$cj 等级:及格"; }elseif($cj<60){ echo "该同学成绩为$cj 等级:不及格"; } ?>
1.1.4 switch语句
概念:switch语句也是多分支语句,功能与if系列条件语句相同,不同的是它只能针对某个表达式
的值作出判断,从而决定执行哪一段代码。
特点:代码更加清晰简洁、便于阅读。
举例:根据学生成绩$score进行评比(满分为100分)。
工作原理:首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个
case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻
止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。
格式:
switch (表达式) { case 值1:代码段1; break; case 值2:代码段2; break; ... default: 代码段n; }
例如:
<?php //switch语句 //随机生成50-100的数 $score=rand(50,100); switch((int)($score/10)){ case 10: // 90~100为优 case 9: echo '优'; break; case 8: echo '良'; break; default: echo '差'; } ?>
注意:表达式的值不能为数组或对象。
1.2 循环结构语句
概念:就是可以实现一段代码的重复执行。
举例:计算给定区间内的偶数或奇数的和等。
1.2.1 while循环语句
概念:while循环语句,是根据循环条件来判断是否重复执行这一段代码的。
例如:
<?php $i=1; while($i<=5) { echo "The number is " . $i . "<br>"; $i++; } ?>
上面的实例首先设置变量 i 的值为 1 ($i=1;)。 然后,只要 i 小于或者等于 5,while 循环将继续运行。循环每运行一次,i 就会递增 1。
1.2.2 do…while循环语句
概念:do…while循环语句的功能与while循环语句类似
唯一的区别在于,while是先判断条件后执行循环体,而do...while会无条件执行一次循环体后再判断条件。
格式:
do { 循环体 …… } while (循环条件);
例如(计算1+到100的值):
<?php $i=1; $sum=0; do{ $sum+=$i; //$sum=$sum+$i $i++; //$i=2 }while($i <= 100);//只要 i 小于或者等于 100,while 循环将继续运行 echo '1+2+3+4+...+99+100= '. $sum; ?>
1.2.3 for循环语句
概念:for循环语句是最常用的循环语句,它适合循环次数已知的情况。
格式:
for (初始值; 条件; 增量) { 要执行的代码; }
for关键字后面小括号“()”中包括了三部分内容:
① 初始化表达式
② 循环条件
③ 操作表达式
它们之间用“;”分隔,{}中的执行语句为循环体。
题目:使用循环语句:计算100之内的奇数之和,
计算100之内的偶数之和,
计算1~100的和.
求0--100之间的奇数之和:
$sum=0; for($i=0;$i<=100;$i++) { if($i%2==1){ $sum+=$i; } } echo $sum; ?>
求0--100之间的偶数之和:
$sum=0; for($i=0;$i<=100;$i+=2) { $sum+=$i; } echo $sum;
计算1~100的和:
$sum=0; for($i=1;$i<=100;$i++){ $sum+=$i;//$sum=$sum+$i; } echo $sum;
1.3 跳转语句
概念:跳转语句用于实现程序执行过程中的流程跳转。
1.3.1 break语句
break语句可应用在switch和循环语句中,其作用是终止当前语句的执行,跳出switch选择结构或循环语句,执行后面的代码。
1.3.2 continue语句
continue语句与break语句的区别在于,前者用于结束本次循环的执行,开始下一轮循环的执行操作;后者用于终止当前循环,跳出循环体。
1.4 流程替代语法
流程替代语法是一种用于在HTML中嵌入PHP代码的技术,它提供了一种更清晰和易于维护的方式来混合编写大量的HTML和PHP代码。
在传统的PHP语法中,我们使用尖括号标记 `<?php ... ?>` 来包裹PHP代码。但是在流程替代语法中,我们使用冒号 `:` 和关键字 `endxxx`(例如 `endfor` 等)来表达开始和结束流程语句的位置。
下面是一个使用流程替代语法的例子:
<div> <?php for ($i = 0; $i < 5; $i++): ?> <p><?php echo $i; ?></p> <?php endfor; ?> </div>
在这个例子中,我使用 `for` 循环语句来打印数字 0 到 4。我使用了 `:` 来标记循环的开始位置,并使用 `endfor` 标记循环的结束位置。嵌套在循环内的 `<p>` 标签会输出每个数字。
除了 `for`,PHP还提供了其他流程语句的替代语法,如 `if`、`while` 等,它们的使用方式类似。流程替代语法使得代码更加清晰,PHP代码和HTML代码更容易区分,并能够减少尖括号的使用。
需要注意的是,流程替代语法只适用于在HTML中嵌入PHP代码,如果单独编写PHP文件,则不需要使用流程替代语法。
二、文件包含语句
作用:在程序开发中,会涉及到多个PHP文件。为此,PHP提供了包含语句,可以从另一个文件中将代码包含进来。
好处:不仅可以提高代码的重用性,还可以提高代码的维护和更新的效率。
PHP提供了两个主要的文件包含语句:`include` 和 `require`。
2.1 include
`include`:`include`语句用于在当前PHP文件中包含另一个文件的内容。如果被包含的文件不存在或出现错误,`include`语句会发出一个警告,并继续执行脚本。
格式(以include语句为例,其它包含语句语法类似):
include '文件路径';
例如:
<?php include 'header.php'; // 运行其他代码 include 'footer.php'; ?>
在上述例子中,我在当前PHP文件中包含了 `header.php` 和 `footer.php` 文件的内容。
注意:
1.“文件路径”指的是被包含文件所在的绝对路径或相对路径。
2.所谓绝对路径就是从盘符开始的路径,如“C:/web/test.php”。
3.所谓相对路径就是从当前路径开始的路径,假设被包含文件test.php与当前文件所在路径都是“C:/web”,则其相对路径就是“./test.php”。
4.在相对路径中,“./”表示当前目录,“../”表示当前目录的上级目录。
2.2 require
`require`:require
语句与include
语句的功能类似,用于将另一个文件的内容包含到当前PHP文件中。主要的区别是,如果被包含的文件不存在或出现错误,require
语句会产生一个致命错误,并停止脚本的执行。
例如:
<?php require 'config.php'; // 运行其他代码 require 'functions.php'; ?>
在上述例子中,我使用 `require` 包含了 `config.php` 和 `functions.php` 文件的内容。
此外,PHP还提供了相应的用于条件包含的语句,即 `include_once`、`require_once`。这些语句会在包含文件之前检查是否已经包含过该文件,如果已经包含,则不会再次包含。
总结
本篇博客介绍了PHP的流程控制语句和文件包含语句。流程控制语句如条件判断、循环和跳转语句,使我们能够根据不同的情况执行不同的代码逻辑,实现灵活的程序控制。通过深入学习这些语句的使用方法和应用场景,我们能够编写出更加强大、高效的程序。
另外,文件包含语句在PHP开发中起着重要的作用。通过使用include和require语句,我们可以将代码块单独存放在一个文件中,方便代码的复用和管理。这种模块化的开发方式能够提高代码的可维护性和扩展性,同时也使代码更加清晰易懂。
感谢您阅读本篇博客,希望这些内容对您有所帮助。如果您对这些内容有任何问题或者想进一步探讨,欢迎在评论区留言。祝您编程愉快!