一、程序流程控制

所谓程序流程就是程序在执行时,代码运行的顺序。而程序流程控制,就是通过条件选择、循环等方式,对代码的执行顺序进行操控。程序流程控制在编程中占据着及其重要的位置,要按照数据的处理的要求对程序流程进行控制。

条件控制语句

1.if…else…语句

if…else…语句是最基本的条件控制语句,它可以按照某个条件成立与否决定执行不同的代码。按照使用的关键字不同,可以分为:

  • if语句
  • if…else…语句
  • if…else if…else if…else…语句

if语句语法:

if(条件表达式){

代码//条件表达式成立,即返回值为TRUE时执行,否则跳过这段代码

}

在if语句中,花括号里的代码仅在if关键字之后的条件表达式成立时执行,如果需要在条件表达式不成立时执行另外的代码,则可以使用if…else…语句,语法如下:

if(条件表达式){

代码//条件表达式成立,即返回值为TRUE时执行,否则跳过这段代码

}else{

代码//条件表达式不成立时,即返回值为FALSE时执行

}

如果需要更细致的条件选择,可以将多个if…else…连续使用,即每一个if…else…语句都作为前一个if…else…的else…部分,语法如下:

if(条件表达式1){

代码//条件表达式1成立,即返回值为TRUE时执行,否则跳过这段代码

}else if(条件表达式2){

代码//条件表达式成立2,即返回值为TRUE时执行,否则跳过这段代码

}else{

代码//条件表达式2不成立时,即返回值为FALSE时执行

}

在多个if…else…连续使用时一定要注意每个if之后的条件表达式之间的关系。

2.switch语句

大多数情况下,if…else if…else…语句可以转化为switch条件选择语句,使得代码更加简洁直观,语法如下:

switch(表达式){

case 值1:代码1;break;

case 值2:代码2;break;

……

case 值n:代码n;break;

default: 代码n+1;}

switch语句在同一个变量或表达式需要与多种不同的结果进行比较的时候可以比if…else if…else…语句显得更加简洁直观。

循环控制语句

当程序中有一段代码需要重复执行,直到满足某个特定的条件,就需要使用循环控制语句。PHP支持的循环控制语句包括while、do…while、for、foreach。

while语句:

while(条件表达式){

//循环体代码,当条件表达式成立,即返回值为TRUE时执行

}

do…while语句:

do {

//循环体代码,当条件表达式成立,即返回值为TRUE时执行

}while(条件表达式);

do…while语句与while语句类似,都是在条件表达式成立时不断重复执行循环体代码,而且它们的循环体代码中一定要包含与条件表达式相关的增量或减量,使得while关键字之后的条件表达式可以不成立,即返回值为FALSE。

两者不同的时,如果默认条件表达式不成立,那么while的循环体代码不会执行,而do…while的循环体代码会执行一次。

注意,do…while循环的while语句后,最好带上分号。

for语句:

for循环是一种比较常用的循环语句,语法如下:

for (初始值; 条件表达式; 增量或减量){

//循环体代码,当条件表达式成立,即返回值为TRUE时执行

}

初始值:主要是初始化一个变量值,用于设置一个计数器;

条件表达式:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束;

增量或减量:主要用于递增或递减计数器,使得条件表达式可以不成立。

foreach语句:

foreach语句最擅长遍历数组,从数组中提取每个“键/值”对,直到所有数组元素获取完毕为止。foreach具有两种语法形式。

第一种语法,用于从数组中获取每个数组元素的值。语法如下:

foreach(array as $value){

//循环体代码,当数组中还有元素未遍历时执行

}

每进行一次循环,当前数组元素的值就会保存在 $value 变量中,每次迭代后都将指针后移,指向下一个数组元素。

第二种语法,用于从数组中获取每个数组元素的键名和值。语法如下:

foreach(array as $key => $value){

//循环体代码,当数组中还有元素未遍历时执行

}

每进行一次循环,当前数组元素的键名就会保存在$key变量中,对应的值就会保存在 $value 变量中,每次迭代后都将指针后移,指向下一个数组元素。

for循环和foreach循环相比,在遍历数组时,foreach循环效率更高。

流程控制符

如果需要中止一个循环,或者跳到下一个循环,或者结束整个PHP代码的执行,可以使用流程控制符。常用的PHP流程控制符包括break、continue、goto、return、exit。

break控制符

break用于结束当前执行的switch、while、do-while、for、foreach的代码,执行这几个代码结构之后的代码。

在上述5个语句结构存在嵌套结构时,break之后可以增加一个整型,决定跳出哪一个层次的结构。

continue控制符

continue控制符主要用在4个循环结构中,用于结束当前循环,并在条件表达式成立时继续执行下一次循环。

与break控制符一样,当循环结构存在嵌套时,continue之后可以增加一个整型,决定结束哪一个层次的循环。

goto控制符

goto控制符可以用来跳转到代码中指定的任一位置。目标位置以名称加冒号进行标记。注意,在编程中慎用goto控制符,可能会对代码运行产生不好的影响。

return控制符

当函数中出现return控制符后,函数将立即结束执行,并将return控制符之后的内容作为函数值返回。

exit控制符

exit用于结束PHP文件的执行,慎用,慎之又慎的用。

二、文件的引入和请求

出于代码复用和模块化开发的考虑,实际编程中经常会将功能组件分隔成单独的php文件,然后在需要使用其中的代码的时候将整个文件与其他文件进行“组装“。PHP提供4个函数用与引入或请求文件。

1.include( )

include( )函数被调用时,会在它出现的位置用参数指向的php文件中的代码包含在当前文件内。如果include( )函数出现在条件为假的if…else…语句中,则不进行引入。

常见的有两种情况会导致include( )执行时出现警告,虽然这个警告不会阻止代码继续执行。一是,被include的php文件中的代码没有包含在<?php……?>标记内;二是,引入的文件不存在。

2.include_once( )

和include( )一样,include_once( )也用于引入php文件,但如果同一个php文件已经在当前文件中引入过,则不会再次引入。其他与include( )一样。

3.require( )

require( )函数用于请求一个文件,并将其包含在它出现的位置。require( )与include( )有两个区别。一是,只要代码中出现require( )函数,无论函数位于何处,都会将请求的php文件包含进当前代码;二是,如果require( )请求的php文件出现错误,则出现错误,终止php代码继续执行。

4.require_once( )

和require ( )一样,require_once( )也用于请求php文件,但如果同一个php文件已经在当前文件中请求过,则不会再次请求。其他与require ( )一样。