PHP中的流程控制

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

1. if 语句
if (1) {
    echo 1;
}

2. if else 语句
if (1) {
    echo 1;
} else {
    echo 0;
}

3. if...elseif...else if...else 语句
<?php 
$a = 0.5;
if ($a>=2) {
    echo 2;
} elseif ($a>=1) {
    echo 1;
} else if ($a>=0){
    echo 0;
} else {
    echo -1;
}
?>

4. switch 分支结构语句
<?php
$i = 2;
switch ($i) {
    case 0:
        echo "i equals 0";
        break;        // 跳出分支结构
    case 1:
        echo "i equals 1";
        break;
    case 2:
        echo "i equals 2";
        break;
    default:
        echo "i is not equal to 0, 1 or 2";
}
?> 

5. while 循环
<?php
$i = 0;
while ($i<5){
    echo $i;
    $i++;
}
?> 

6. do-while 循环
<?php
$i = 0;
do {
    echo $i;
    $i++;
} while ($i<5);
?> 

7. for 循环
for ($i=0; $i<5; $i++) {
    echo $i;
}

8. foreach循环
foreach主要用于遍历数组或对象,且效率比其他的循环结构要高,推荐使用。
<?php
$arr = array( array('id'=>1, 'name'=>'jack'), array('id'=>2, 'name'=>'rose') );
foreach ($arr as $k => $v) {
    echo $k . ':' . $v['id'];
    echo '<br/>';
}
?> 

9. 流程控制语句的替代写法
PHP 提供了一些流程控制的替代语法,包括 ifwhileforforeach  switch。替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;endwhile;endfor;endforeach; 以及 endswitch;
<?php
for ($i=0; $i<5; $i++) :
    echo $i;
endfor;
?> 

10. 流程控制的关键字
PHP中提供了一些关键字,可用于显示地强制结束流程控制。
  • return:返回值。如果return出现在一个函数中,会结束函数的执行;如果return直接出现在php脚本文件中,则会终止当前脚本的执行。
  • break结束当前 forforeachwhiledo-while 或者 switch 结构的执行。break后面还可以跟一个可选的数字参数来决定跳出几重循环。
  • continue在循环结构中,continue用来跳过本次循环中剩余的代码,并在下一次循环条件为真时开始执行下一次循环。continue后面也可以跟一个可选的数字参数来决定跳过几重循环。默认值是1,即跳到当前循环的末尾。
  • goto可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记。PHP 中的 goto 有一定的限制,goto语句和目标位置只能位于同一个文件的同一个作用域。它无法跳出一个函数或类方法,也无法跳入到另一个函数;它无法跳入到任何循环或者 switch 结构中,但可以跳出循环或者 switch,通常用 goto 代替多层的 break 来跳出循环
<?php
for($i=0; $i<100; $i++) {
  echo $i;
  if($i==5){
      goto end;
  }
}
echo "i = $i";
end:
?>


你可能感兴趣的:(流程控制,while,break,for,if)