任何 PHP 脚本都是由一系列语句构成的。一条语句可以是一个赋值语句,一个函数调用,一个循环,一个条件语句或者甚至是一个什么也不做的语句(空语句)。语句通常以分号结束。此外,还可以用花括号将一组语句封装成一个语句组。语句组本身可以当作是一行语句。
一、分支结构
1.单一条件分支结构 if
<?php $a = 5; if($a > 0){ echo "$a gt 0"; //显示此结果 5 gt 0 } ?>
2.双向条件分支结构 else从句
<?php $a = -5; if($a > 0){ echo "$a gt 0"; }else{ echo "$a lt 0"; //结果显示为 -5 lt 0 } ?>
3.多向条件分支结构 elseif子句
<?php $a = 5; $b = 7; if($a > $b){ echo "$a gt $b"; }elseif($a == $b){ echo "$a eq $b"; }else{ echo "$a lt $b"; //结果显示 5 lt 7 } ?>
4.多向条件分支结构 switch语句
<?php $i = 2; switch($i){ case 0: echo "i eq 0"; break; case 1: echo "i eq 1"; break; case 2: echo "i eq 2"; //结果为 i eq 2 break; default: echo "i noteq 0, 1 or 3"; } ?>
5.巢状条件分支结构:if语句中嵌套if语句
<?php $a = 7; $b = 5; if($a > 0){ if($a >$b){ echo "a eq b and 0"; //结果为 a eq b and 0 } }else{ echo "a lt 0"; } ?>
二、循环语句
1. while语句
<?php $i = 0; while($i < 10){ echo $i++; //输入结果是 0123456789 } ?>
2. do-while语句
<?php $i = 0; do{ echo $i; //输入结果 0,刚好循环一次 }while($i > 0); ?>
3. for语句是PHP中最复杂的循环语句。
for循环的语法是:for(expr1; expr2; expr3){ ... }
其中第一个表达式 expr1 是整个循环开始前无条件求值(并执行)一次;
第二个表达式 expr2 是每次循环开始前求值。如果值为TRUE,则继续循环,执行嵌套内的循环语句。如果值为FALSE,则终止循环;
第三个表达 expr3 是每次循环结束后求值(并执行)。
每个表达式都可以为空或包括逗号分隔的多个表达式。表达式 expr2 中,所有用逗号分隔的表达式都会计算,但只取最后一个结果。expr2 为空意味着将无限循环下去。这可能不像想象中那样没有用,因为经常会希望用有条件的 break 语句来结束循环而不是用 for 的表达式真值判断。
<?php //以下四种方法都可以实现从1到10的循环 for($i = 1; $i <= 10; $i++){ echo $i; } echo '<br>'; for($i =1; ; $i++){ if($i >10){ break; } echo $i; } echo '<br>'; $i = 1; for(;;){ if($i > 10){ break; } echo $i++; } echo '<br>'; for($i = 1; $i <= 10; print $i, $i++); ?>
注意:break;是可以结束整个循环的。
4. foreach语句:遍历数组的简单方式,只能用于数组和对象。有两种语法结构:
第一种结构:foreach( $arr as $value){ ... } 遍历给定的$arr数组,每次循环都将当前单元的值赋给 $value,同时指针向前移动一步;
第二种结构:foreach($arr as $key => $value){ ... } 遍历给定$arr数组,每次循环将当前单元的键赋给 $key 以及值赋给 $value,同时指针向前移动一步。
注意:数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留。建议使用 unset() 来将其销毁。
<?php $arr = array( "username" => "xiaofan", "sex" => "nan", "email" => "xiaofan@123.com" ); foreach( $arr as $value){ echo $value.'<br>'; } //以上foreach遍历方法与以下方法相同 reset($arr); while(list(,$value) = each($arr)){ echo $value.'<br>'; } foreach($arr as $key => $value){ echo "$key is $value<br>"; } ?>
三、特殊的流程控制语句
1.break; 结束当前 while do-while for foreach switch循环结构的执行。
2.continue; 在循环结构用用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环。
3.return; 如果在一个函数中调用 return 语句,将立即结束此函数的执行并将它的参数作为函数的值返回。return 也会终止 eval() 语句或者脚本文件的执行。
注意:既然 return 是语言结构而不是函数,因此其参数没有必要用括号将其括起来。通常都不用括号,实际上也应该不用,这样可以降低 PHP 的负担。
4.goto; (PHP >= 5.3.0)可以用来跳转到程序中的另一位置。PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。也无法跳入到任何循环或者 switch 结构中。可以跳出循环或者 switch。
<?php goto a; echo 'foo'; a: echo 'bar'; //只会输入结果 bar ?>
5. exit; 当前的脚本只要执行到exit;就会退出整个脚本。exit是个函数,与其功能相同的还有 die();
6. 引入文件需要的语句 require include require_once include_once
<?php require "a.php"; include "b.php"; require_once "c.php"; include_once "d.php"; ?>