PHP常用控制结构

不要嘲笑铁树。为了开一次花,它付出了比别的树种更长久的努力。 以下是小编为大家搜索整理了PHP常用控制结构,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!

控制结构

目录 流程控制的替代语法

任何 PHP 脚本都是由一系列语句构成的。一条语句可以是一个赋值语句,一个函数调用,一个循环,一个条件语句或者甚至是一个什么也不做的语句(空语句)。语句通常以分号结束。此外,还可以用花括号将一组语句封装成一个语句组。语句组本身可以当作是一行语句。本章讲述了各种语句类型。 if

if 结构是很多语言包括 PHP 在内最重要的特性之一,它允许按照条件执行代码片段。PHP 的 if 结构和 C 语言相似:

if (expr)

statement

?>

expr 按照布尔求值。如果 expr 的值为 TRUE,PHP 将执行 statement,如果值为 FALSE - 将忽略 statement。有关哪些值被视为 FALSE 的更多信息参见转换为布尔值一节。

如果 $a 大于 $b,则以下例子将显示 a is bigger than b:

if ($a > $b)

echo "a is bigger than b";

?>

经常需要按照条件执行不止一条语句,当然并不需要给每条语句都加上一个 if 子句。可以将这些语句放入语句组中。例如,如果 $a 大于 $b,以下代码将显示 a is bigger than b 并且将 $a 的值赋给 $b:

if ($a > $b) {

echo "a is bigger than b";

$b = $a;

}

?>

if 语句可以无限层地嵌套在其它 if 语句中,这给程序的不同部分的条件执行提供了充分的弹性。

: 语言参考 : 控制结构 else

经常需要在满足某个条件时执行一条语句,而在不满足该条件时执行其它语句,这正是 else 的功能。else 延伸了 if 语句,可以在 if 语句中的表达式的值为 FALSE 时执行语句。例如以下代码在 $a 大于 $b 时显示 a is bigger than b,反之则显示 a is NOT bigger than b: copy to clipboard

if ($a > $b) {

echo "a is bigger than b";

} else {

echo "a is NOT bigger than b";

}

?>

else 语句仅在 if 以及 elseif(如果有的话)语句中的表达式的值为 FALSE 时执行(参见 elseif)。

<< 控制结构 Main : 语言参考 : 控制结构 : else This page online Report a bug elseif >> elseif

elseif,和此名称暗示的一样,是 if 和 else 的组合。和 else 一样,它延伸了 if 语句,可以在原来的 if 表达式值为 FALSE 时执行不同语句。但是和 else 不一样的是,它仅在 elseif 的条件表达式值为 TRUE 时执行语句。例如以下代码将根据条件分别显示 a is bigger than b,a equal to b 或者 a is smaller than b: copy to clipboard

if ($a > $b) {

echo "a is bigger than b";

} elseif ($a == $b) {

echo "a is equal to b";

} else {

echo "a is smaller than b";

}

?>

在同一个 if 结构中可以有多个 elseif 语句。第一个表达式值为 TRUE 的 elseif 语句(如果有的话)将会执行。在 PHP 中,也可以写成“else if”(两个单词),它和“elseif”(一个单词)的行为完全一样。句法分析的含义有少许区别(如果你熟悉 C 语言的话,这是同样的行为),但是底线是两者会产生完全一样的行为。

elseif 的语句仅在之前的 if 或 elseif 的表达式值为 FALSE,而当前的 elseif 表达式值为 TRUE 时执行。

Main : 语言参考 : 控制结构 : elseif This page online Report a bug 流程控制的替代语法 >> << else 流程控制的替代语法

PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch。替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,endwhile;,endfor;,endforeach; 以及 endswitch;。 copy to clipboard

A is equal to 5

在上面的例子中,HTML 内容“A is equal to 5”用替代语法嵌套在 if 语句中。该 HTML 的内容仅在 $a 等于 5 时显示。

替代语法同样可以用在 else 和 elseif 中。下面是一个包括 elseif 和 else 的 if 结构用替代语法格式写的例子: copy to clipboard

if ($a == 5):

echo "a equals 5";

echo "...";

elseif ($a == 6):

echo "a equals 6";

echo "!!!";

else:

echo "a is neither 5 nor 6";

endif;

?>

更多例子参见 while,for 和 if。

Main : 语言参考 : 控制结构 : 流程控制的替代语法 This page online Report a bug << elseif while >> while

while 循环是 PHP 中最简单的循环类型。它和 C 语言中的 while 表现得一样。while 语句的基本格式是: copy to clipboard

while (expr)

statement

while 语句的含意很简单,它告诉 PHP 只要 while 表达式的值为 TRUE 就重复执行嵌套中的循环语句。表达式的值在每次开始循环时检查,所以即使这个值在循环语句中改变了,语句也不会停止执行,直到本次循环结束。有时候如果 while 表达式的值一开始就是 FALSE,则循环语句一次都不会执行。

和 if 语句一样,可以在 while 循环中用花括号括起一个语句组,或者用替代语法: copy to clipboard

while (expr):

statement

...

endwhile;

下面两个例子完全一样,都显示数字 1 到 10: copy to clipboard

/* example 1 */

$i = 1;

while ($i <= 10) {

echo $i++; /* the printed value would be

$i before the increment

(post-increment) */

}

/* example 2 */

$i = 1;

while ($i <= 10):

print $i;

$i++;

endwhile;

?>

<< 流程控制的替Main : 语言参考 : 控制结代语法 构 : while This page online Report a bug

do-while do-while >>

do-while 和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和正规的 while 循环主要的区别是 do-while 的循环语句保证会执行一次(表达式的真值在每次循环结束后检查),然而在正规的 while 循环中就不一定了(表达式真值在循环开始时检查,如果一开始就为 FALSE 则整个循环立即终止)。

do-while 循环只有一种语法: copy to clipboard

$i = 0;

do {

echo $i;

} while ($i > 0);

?>

以上循环将正好运行一次,因为经过第一次循环后,当检查表达式的真值时,其值为 FALSE($i 不大于 0)而导致循环终止。

资深的 C 语言用户可能熟悉另一种不同的 do-while 循环用法,把语句放在 do-while(0) 之中,在循环内部用 break 语句来结束执行循环。以下代码片段示范了此方法: copy to clipboard

do {

if ($i < 5) {

echo "i is not big enough";

break;

}

$i *= $factor;

if ($i < $minimum_limit) {

break;

}

echo "i is ok";

/* process i */

} while(0);

?>

如果还不能立刻理解也不用担心。即使不用此“特性”也照样可以写出强大的代码来。

for

copy to clipboard

for (expr1; expr2; expr3)

statement

第一个表达式(expr1)在循环开始前无条件求值一次。

expr2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。

expr3 在每次循环之后被求值(执行)。

每个表达式都可以为空。expr2 为空意味着将无限循环下去(和 C 一样,PHP 认为其值为 TRUE)。这可能不像想象中那样没有用,因为经常会希望用 break 语句来结束循环而不是用 for 的表达式真值判断。

考虑以下的例子,它们都显示数字 1 到 10: copy to clipboard

/* example 1 */

for ($i = 1; $i <= 10; $i++) {

echo $i;

}

/* example 2 */

for ($i = 1; ; $i++) {

if ($i > 10) {

break;

}

echo $i;

}

/* example 3 */

$i = 1;

for (;;) {

if ($i > 10) {

break;

}

echo $i;

$i++;

}

/* example 4 */

for ($i = 1; $i <= 10; echo $i, $i++);

?>

当然,第一个例子看上去最正常(或者第四个),但用户可能会发现在 for 循环中用空的表达式在很多场合下会很方便。

PHP 也支持用冒号的 for 循环的替代语法。 copy to clipboard

for (expr1; expr2; expr3):

statement;

...

endfor; << do-while Main : 语言参考 : 控制结构 : for This page online Report a bug foreach >> foreach

php有哪些程序结构,PHP常用控制结构相关推荐

  1. MATLAB学习一:基本程序结构、控制语句以及 常用命令

    MATLAB同其他高级语言一致,有三种基本程序结构: 顺序结构: 选择结构: 循环结构 MATLAB流程控制语句主要有: For While if-else-end switch-case 常用命令: ...

  2. python的分支结构使用if保留字_python程序的三种控制结构

    什么是控制结构?分支结构.循环结构如何使用?while死循环与效率问题,辅助循环控制的保留字:break和continue使用"""程序有三种基本结构组成:顺序结构.分支 ...

  3. Linux目录结构和常用命令

    Linux目录结构和常用命令 一.Linux目录结构 Linux文件夹很多都是固定的,分门别类,要想快速弄清楚系统的架构,那么哪些目录里面装着哪些文件是干什么用的. 首先,回顾一下Linux系统下文件 ...

  4. Maven-学习笔记03【基础-Maven标准目录结构和常用命令】

    Java后端 学习路线 笔记汇总表[黑马程序员] 黑马程序员(腾讯微云)Maven基础讲义.pdf Maven-学习笔记01[基础-Maven基本概念] Maven-学习笔记02[基础-Maven的安 ...

  5. 《Go语言圣经》学习笔记 第二章 程序结构

    Go语言圣经学习笔记 第二章 程序结构 目录 命名 声明 变量 赋值 类型 包和文件 作用域 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记,几乎是书上的内 ...

  6. c语言程序设计的顺序结构的常用控制语句,C语言程序设计教程-第03课-顺序结构的程序设计.ppt...

    <C语言程序设计教程-第03课-顺序结构的程序设计.ppt>由会员分享,可在线阅读,更多相关<C语言程序设计教程-第03课-顺序结构的程序设计.ppt(21页珍藏版)>请在人人 ...

  7. python语言控制结构是指_python程序的三种控制结构

    程序的三种控制结构 什么是控制结构? """ 程序有三种基本结构组成:顺序结构.分支结构.循环结构.任何程序都是由这三种基本结构组成. 顺序结构是程序按照线性顺序依次执行 ...

  8. c语言饿结构_C语言的四种程序结构

    C语言的四种程序结构 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电 ...

  9. 【汇编语言】多模块程序结构

    多模块程序结构 文章目录 多模块程序结构 一.多模块方法 (1)源文件包含 (2)模块连接 (3)子程序库和库文件包含 1.子程序库 2.库文件包含 二.宏汇编 (1)宏汇编的定义 (2)宏定义.宏调 ...

最新文章

  1. linux下如何将mysql加入环境变量
  2. IO设备在OS中的权衡
  3. 机器学习:正负样本数据量不平衡处理方法
  4. apache tomcat (catalina)查版本(solaris/unix)
  5. Delphi中destroy, free, freeAndNil, release用法和区别
  6. GotoAndPlay 图论
  7. sublime配置markdown
  8. 【TSP】基于matlab GUI遗传算法求解旅行商问题【含Matlab源码 1333期】
  9. 电容和电感(自总结)
  10. 深度测试oppo软件,OPPO深度测试app
  11. 计算机新建里没有word,为什么电脑右键新建里头没有WORD文档,如何加上
  12. python html抓取,并用re正则表达式解析(一)
  13. shell脚本之俄罗斯方块
  14. 内网穿透技术有哪些(经验分享)
  15. hdu5454 Excited Database (线段树)
  16. 自治智能的数据库云管平台zCloud v3.3正式发布
  17. BlackBerry应用商店(App World)
  18. OpenAI Whisper and ChatGPT 语音助手
  19. 如何解开和反编译思科cisco的交换机固件
  20. 写在壬寅年末,2023年春节

热门文章

  1. wordpress主题是php开发的吗,写给想学习wordpress主题开发的朋友们
  2. 如何在服务器运行aspx_ASP.NET开发实战——(四)MVC是如何运行?它的生命周期是什么?...
  3. android解析布局树,Android Viewtreeobserver解析
  4. Android:最全面的 Webview 详解
  5. imp命令导入指定表_【imp】使用imp工具迁移数据时迂回地排除特定表的导入
  6. mosquitto常见问题及其解决办法
  7. 通过Keepalived实现Redis Failover自动故障切换功能
  8. Qt creator 中文显示问题(常量中有换行符或中文显示乱码)
  9. UE4 控制台管理器: 在C++中设置控制台变量
  10. Docker和Kubernetes应用程序打包:Metaparticle、Pulumi与Ballerina比较