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

■ if

■ else

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

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

A is equal to 5

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

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

■ do-while

■ for

■ foreach

PHP 4 引入了 foreach 结构,和 Perl 以及其他语言很像。这只是一种遍历数组简便方法。foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。下面是两种遍历数组的方式:

foreach (array_expression as $value)

statement

foreach (array_expression as $key => $value)

statement

Note:

当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。

Note:

除非数组是被引用,foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。foreach对数组指针有些副作用。除非对其重置,在 foreach 循环中或循环后都不要依赖数组指针的值。

自 PHP 5 起,可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。

$arr = array(1, 2, 3, 4);

foreach ($arr as &$value) {

$value = $value * 2;

}

// $arr is now array(2, 4, 6, 8)

?>

Note:

foreach 不支持用“@”来抑制错误信息的能力。

■ break

break 结束当前 for,foreach,while,do-while 或者 switch 结构的执行。

break 可以接受一个可选的数字参数来决定跳出几重循环。

■ continue

continue 在循环结构用用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环。

Note: 注意在 PHP 中 switch 语句被认为是可以使用 continue 的一种循环结构。

continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。

■ switch

switch 语句和具有同样表达式的一系列的 IF 语句相似。很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码。这正是 switch 语句的用途。

Note: 注意和其它语言不同,continue 语句作用到 switch 上的作用类似于 break。如果在循环中有一个 switch 并希望 continue 到外层循环中的下一个轮回,用 continue 2。

if 和 switch比较

if ($i == 0) {

echo "i equals 0";

} elseif ($i == 1) {

echo "i equals 1";

} elseif ($i == 2) {

echo "i equals 2";

}

switch ($i) {

case 0:

echo "i equals 0";

break;

case 1:

echo "i equals 1";

break;

case 2:

echo "i equals 2";

break;

}

?>

switch 结构可以用字符串

switch ($i) {

case "apple":

echo "i is apple";

break;

case "bar":

echo "i is bar";

break;

case "cake":

echo "i is cake";

break;

}

?>

■ declare

■ return

■ require

require() 语句包含并运行指定文件。

require() 和 include() 几乎完全一样,除了处理失败的方式不同之外。include() 产生一个Warning而require() 则导致一个 Fatal Error。换句话说,如果想在丢失文件时停止处理页面,那就别犹豫了,用 require() 吧。include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。

■ include

■ require_once

require_once() 语句在脚本执行期间包含并运行指定文件。此行为和 require() 语句完全相同,唯一区别是如果该文件中的代码已经被包含了,则不会再次包含。

■ include_once

■ goto

goto操作符可以用来跳转到程序中的某一指定位置。该目标位置可以用目标名称 加上冒号来标记。PHP中的goto有一定限制,只能在同一个文件和作用域中跳转, 也就是说你无法跳出一个函数或类方法,也无法跳入到另一个函数。你也无法跳入到任何循环或者switch 结构中。常见的用法是用来跳出循环或者switch,可以代替多层的break。 限制使用goto语句,会影响程序可读性。

喜欢 (0)or分享 (0)

php组成,PHP的控制结构,PHP脚本是由一系列语句组成的。相关推荐

  1. 第八课-第二讲 08_02_bash脚本编程之七 case语句及脚本选项进阶

    第八课-第二讲 08_02_bash脚本编程之七 case语句及脚本选项进阶 一. 面向过程 控制结构 顺序结构 选择结构 循环结构 选择结构 if语句 单分支,双分支,多分支 case 语句 cas ...

  2. 如何获取shell脚本中某条语句的执行时间

    有没有办法获取shell脚本中某条语句的执行时间 如果要获得语句执行所花的时间 用time命令 在语句的前面加上time命令 输出结果一共3列 比如我执行time sleep 5 real    0m ...

  3. Shell脚本break和continue语句应用

    记录:436 场景: Shell脚本break和continue语句应用.在for.while循环中使用break和continue语句. 版本:CentOS Linux release 7.9.20 ...

  4. 批处理bat脚本if else条件语句

    if (condition) (do_something) ELSE (do_something_else) 上述语句首先在"if"语句中评估一个条件. 如果条件为真,则执行后面的 ...

  5. linux脚本多分支if语句,shell脚本基础应用(二)if单分支,双分支,多分支语句...

    前言:为了使shell脚本具有一定的"判断"能力,根据不同的条件来完成不同的管理任务.使脚本具有一定的"智能". 一.条件测试操作 文件测试常见操作: -d:: ...

  6. [sqlserver脚本]查看指定SQL语句生成了哪些执行计划

    参考SQL技术内幕写了一段脚本,可以通过这段脚本查看执行指定SQL语句后,系统生成了哪些执行计划.使用时注意以下几点: 修改use MyTest,换成自己的数据库名字. 将 exec sp_page_ ...

  7. Linux基础之bash脚本进阶篇-循环语句(for,while,until)

    20160909 补充break与continue的区别 什么是循环语句.死循环? 循环语句:将一段代码重复执行0.1或多次. 到底要重复运行多少次?以及我们如何设定循环语句的重复次数? 为了解决上面 ...

  8. shell脚本mysql_Shell脚本中执行sql语句操作MySQL数据库的几个方法

    实验如下: [root@idb1 ~]# more /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m mysql> show va ...

  9. shell 脚本编程之for语句、if语句(2 )

    一.bash条件测试: 整数测试   [ expression ] 字符测试     ` expression ` 条件测试     test expression   test 根据表达式求值的结果 ...

最新文章

  1. mybatis 原理_图解源码 | MyBatis的Mapper原理
  2. Web组件 – 构建商业化应用的基石
  3. MySQL数据库 基本操作语句
  4. SAP UI5 app view router - Haiji's application
  5. html5页面热力图几十万数据,基于百度地图的数据可视化,包括大量数据的标绘以及热力图的插入...
  6. Linux3种进程,linux内核获取进程的全路径3种方法
  7. Vector Math for 3D Computer Graphics
  8. jquery实现页面提示,数据正在加载中
  9. 数据结构银行叫号系统
  10. 【Python数据科学】多表关联 merge、join、concat
  11. A JNI error has occurred, please check your installation and try again
  12. 快速文件扫描王用户协议
  13. python与工程造价的联系_工程造价和工程预算是一个概念吗?
  14. 知乎ajax采集,胖鼠采集WordPress插件教程-WP自动采集和发布简书,微信公众号,知乎等任意网站...
  15. hive-学习汽车销售分析
  16. RPC原理(1)之深入RPC原理简介
  17. 电视android 操作系统,智能电视哪个系统好?四大操作系统对比分析
  18. FDTD快速入门之Lumerical脚本语言Pickup(一)序言
  19. 用AidLux跑老人摔倒检测项目,看AI助老轻松落地
  20. TypeScript中type和interface区别

热门文章

  1. 俄国数学家称:“平行线可以相交”,却遭到质疑,死后12年被证实
  2. 袁亚湘:愿为数学做更多
  3. 如何摇晃一瓶水使其核聚变?
  4. (pytorch-深度学习系列)CNN的多输入通道和多输出通道
  5. 【ESSD技术解读-04】ESSD Auto PL规格,引领IO性能弹性新方向
  6. 怀里橘猫柴犬,掌上代码江湖——对话阿里云MVP郭旭东
  7. 联手友盟+打造云上数据增长“样板间”, 好兔视频成功逆势突围
  8. 佰腾科技:专利大数据的云上裂变之路
  9. MongoDB 4.2 内核解析 - Change Stream
  10. 闲鱼如何高效承接并处理用户纠纷