if 结构是很多语言包括 PHP 在内最重要的特性之一,它允许按照条件执行代码片段。
if 语句可以无限层地嵌套在其它 if 语句中,这给程序的不同部分的条件执行提供了充分的弹性。
else 延伸了 if 语句,可以在 if 语句中的表达式的值为 FALSE 时执行语句。
elseif,在 elseif 的条件表达式值为 TRUE 时执行语句。
在同一个 if 结构中可以有多个 elseif 语句。第一个表达式值为 TRUE 的 elseif 语句(如果有的话)将会执行。在 PHP 中,也可以写成“else if”(两个单词),它和“elseif”(一个单词)的行为完全一样。句法分析的含义有少许区别(如果你熟悉 C 语言的话,这是同样的行为),但是底线是两者会产生完全一样的行为。
Note: 必须要注意的是 elseif 与 else if 只有在类似上例中使用大括号的情况下才认为是完全相同
PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch。替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成endif;,endwhile;,endfor;,endforeach; 以及 endswitch;。 替代语法同样可以用在 else 和 elseif 中。
while 循环是 PHP 中最简单的循环类型。
和 if 语句一样,可以在 while 循环中用花括号括起一个语句组,或者用替代语法。
do-while 和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。
for 循环是 PHP 中最复杂的循环结构。
每个表达式都可以为空或包括逗号分隔的多个表达式。
PHP 4 引入了 foreach 结构,是一种遍历数组简便方法。foreach 仅能用于数组。有两种语法,第二种比较次要但却是第一种的有用的扩展。
foreach (array_expression as $value) statementforeach (array_expression as $key => $value) statement
第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。
自PHP 5 起,还可能遍历对象。
Note:当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在foreach 循环之前调用 reset()。
自 PHP 5 起,可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。
<?php$arr = array(1, 2, 3, 4);foreach ($arr as &$value) { $value = $value * 2;}// $arr is now array(2, 4, 6, 8)?>