php 流程控制
- 简介
- 任何 PHP 脚本都是由一系列语句构成的。一条语句可以是一个赋值语句,一个函数调用,一个循环,一个条件语句或者甚至是一个什么也不做的语句(空语句)。语句通常以分号结束。此外,还可以用花括号将一组语句封装成一个语句组。语句组本身可以当作是一行语句。本章介绍了各种语句类型。
- if
- (PHP 4, PHP 5, PHP 7)if结构是很多语言包括 PHP 在内最重要的特性之一,它允许按照条件执行代码片段。PHP 的if结构和 C 语言相似:<?phpif(expr)statement?>如同在表达式一章中定义的,expr按照布尔求值。如果expr的值为TRUE,PH
- else
- (PHP 4, PHP 5, PHP 7)经常需要在满足某个条件时执行一条语句,而在不满足该条件时执行其它语句,这正是else的功能。else延伸了if语句,可以在if语句中的表达式的值为FALSE时执行语句。例如以下代码在$a大于$b时显示a is bigger than b,反之则显示a is
- elseif/else if
- (PHP 4, PHP 5, PHP 7)elseif,和此名称暗示的一样,是if和else的组合。和else一样,它延伸了if语句,可以在原来的if表达式值为FALSE时执行不同语句。但是和else不一样的是,它仅在elseif的条件表达式值为TRUE时执行语句。例如以下代码将根据条件分别显示a
- 流程控制的替代语法
- (PHP 4, PHP 5, PHP 7) PHP 提供了一些流程控制的替代语法,包括if,while,for,foreach和switch。替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成endif;,endwhile;,endfor;,endforeach;以及end
- while
- (PHP 4, PHP 5, PHP 7)while循环是 PHP 中最简单的循环类型。它和 C 语言中的while表现地一样。while语句的基本格式是:while(expr)statementwhile语句的含意很简单,它告诉 PHP 只要while表达式的值为TRUE就重复执行嵌套中的循环语句
- do-while
- (PHP 4, PHP 5, PHP 7)do-while循环和while循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和一般的while循环主要的区别是do-while的循环语句保证会执行一次(表达式的真值在每次循环结束后检查),然而在一般的while循环中就不一定了(表达式
- for
- (PHP 4, PHP 5, PHP 7)for循环是 PHP 中最复杂的循环结构。它的行为和 C 语言的相似。for循环的语法是:for(expr1; expr2; expr3)statement第一个表达式(expr1)在循环开始前无条件求值(并执行)一次。expr2在每次循环开始前求值。如果值
- foreach
- (PHP 4, PHP 5, PHP 7)foreach语法结构提供了遍历数组的简单方式。foreach仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。有两种语法:foreach(array_expression as $value)stateme
- break
- (PHP 4, PHP 5, PHP 7)break结束当前for,foreach,while,do-while或者switch结构的执行。break可以接受一个可选的数字参数来决定跳出几重循环。<?php$arr = array('one','two','three','four',
- continue
- (PHP 4, PHP 5, PHP 7)continue在循环结构用用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环。Note:注意在 PHP 中switch语句被认为是可以使用continue的一种循环结构。continue接受一个可选的数字参数来决定跳过几重循环到循环结尾。默认
- switch
- (PHP 4, PHP 5, PHP 7)switch语句类似于具有同一个表达式的一系列if语句。很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码。这正是switch语句的用途。Note:注意和其它语言不同,continue语句作用到 switch 上的作
- declare
- (PHP 4, PHP 5, PHP 7)declare结构用来设定一段代码的执行指令。declare的语法和其它流程控制结构相似:declare(directive)statementdirective部分允许设定declare代码段的行为。目前只认识两个指令:ticks(更多信息见下面ticks
- return
- (PHP 4, PHP 5, PHP 7)如果在一个函数中调用return语句,将立即结束此函数的执行并将它的参数作为函数的值返回。return也会终止eval()语句或者脚本文件的执行。如果在全局范围中调用,则当前脚本文件中止运行。如果当前脚本文件是被include的或者require的,则控制交
- require
- (PHP 4, PHP 5, PHP 7)require和include几乎完全一样,除了处理失败的方式不同之外。require在出错时产生E_COMPILE_ERROR级别的错误。换句话说将导致脚本中止而include只产生警告(E_WARNING),脚本会继续运行。参见include文档了解详情
- include
- (PHP 4, PHP 5, PHP 7)include语句包含并运行指定文件。以下文档也适用于require。被包含文件先按参数给出的路径寻找,如果没有给出目录(只有文件名)时则按照include_path指定的目录寻找。如果在include_path下没找到该文件则include最后才在调用脚本
- require_once
- (PHP 4, PHP 5, PHP 7)require_once语句和require语句完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含。参见include_once的文档来理解_once的含义,并理解与没有_once时候有什么不同。If your code is
- include_once
- (PHP 4, PHP 5, PHP 7)include_once语句在脚本执行期间包含并运行指定文件。此行为和include语句类似,唯一区别是如果该文件中已经被包含过,则不会再次包含。如同此语句名字暗示的那样,只会包含一次。include_once可以用于在脚本执行期间同一个文件有可能被包含超过
- goto
- (PHP 5 >= 5.3.0, PHP 7)此漫画鸣谢» xkcdgoto操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记,而跳转指令是goto之后接上目标位置的标记。PHP 中的goto有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出