首页 > 代码库 > PHP控制结构

PHP控制结构

1.break跳出代码片段,结束这个循环  

2.continue结束当前片段,结束这次循环,继续下一次循环

3.exit 结束整个PHP代码

 
break的作用是跳出这个循环(如果这个break或者continue在循环中的if语句里面,不是跳出if语句,而是跳出循环语句),执行这个循环的大括号以后的语句,
break在循环语句中是这样,在switch语句用功能也是这样的,而continue是当条件满足的时候不执行这个循环后面的语句,从这个循环的开始重新执行。
 
 1 <?php   2 /* php的break,continue,return 的简单区别代码 */   3 $i = 1;     4 while (true) { // 这里看上去这个循环会一直执行     5     if ($i==2) {// 2跳过不显示     6         $i++;     7         continue;     8     } else if ($i==5) {// 但到这里$i=5就跳出循循环了      9         break;    10     } else {    11         echo $i . ‘<br>‘;    12     }    13     $i++;    14 }    15 exit;    16       17 echo ‘这里不输出‘;18 ?>

return、break和contiue是语言结构,就如同if语句之类的,但是exit却是个函数。

先说一下exit函数的用法:
作用:Output a message and terminate the current script 输出一则消息并且终止当前脚本。

如果一段文本中包括多个以 <?php 开始,以 ?> 结束的脚本,exit退出所有脚本。

比如一篇php文本包括一下代码,则不输出为world。

 1 <?php 3   echo "hello"; 5   exit; 7 ?> 8 9 <?php11 echo "world";13 ?>

 



语法格式:void表示没有返回值。

void exit ([ string $status ] )
void exit ( int $status )
If status is a string, this function prints the status just before exiting.

如果status是一段字符串,这个函数在脚本退出前打印status。

If status is an integer, that value will also be used as the exit status. Exit statuses should be in the range 0 to 254, the exit status 255 is reserved by PHP and shall not be used. The status 0 is used to terminate the program successfully.

如果status是一个整数,这个整数会被作为退出状态。退出状态应该从0到254,退出状态255被PHP保留并禁止使用。状态0被用来表示成功的终止程序。

 

break

break 结束当前 for,foreach,while,do-while 或者 switch 结构的执行。

break 可以接受一个可选的数字参数来决定跳出几重循环。

<?php
$arr = array(‘one‘, ‘two‘, ‘three‘, ‘four‘, ‘stop‘, ‘five‘);
while (list (, $val) = each($arr)) {
    if ($val == ‘stop‘) {
        break;    /* You could also write ‘break 1;‘ here. */
    }
    echo "$val<br /> ";
}

/* 使用可选参数 */

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "At 5<br /> ";
        break 1;  /* 只退出 switch. */
    case 10:
        echo "At 10; quitting<br /> ";
        break 2;  /* 退出 switch 和 while 循环 */
    default:
        break;
    }
}
?>

 


 

continue

continue 在循环结构用用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环。

Note: 注意在 PHP 中 switch 语句被认为是可以使用 continue 的一种循环结构。

continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。

<?php
while (list ($key, $value) = each($arr)) {
    if (!($key % 2)) { // skip odd members
        continue;
    }
    do_something_odd($value);
}

$i = 0;
while ($i++ < 5) {
    echo "Outer<br /> ";
    while (1) {
        echo "&nbsp;&nbsp;Middle<br /> ";
        while (1) {
            echo "&nbsp;&nbsp;Inner<br /> ";
            continue 3;
        }
        echo "This never gets output.<br /> ";
    }
    echo "Neither does this.<br /> ";
}
?>

省略 continue 后面的分号会导致混淆。以下例子示意了不应该这样做。

<?php
  for ($i = 0; $i < 5; ++$i) {
      if ($i == 2)
          continue
      print "$i ";
  }
?>

希望得到的结果是:

0134

可实际的输出是:

2

因为 print() 调用的返回值是 int(1),看上去作为了上述可选的数字参数。


return

如果在一个函数中调用 return() 语句,将立即结束此函数的执行并将它的参数作为函数的值返回。return() 也会终止 eval() 语句或者脚本文件的执行。

如果在全局范围中调用,则当前脚本文件中止运行。如果当前脚本文件是被 include() 的或者require() 的,则控制交回调用文件。此外,如果当前脚本是被 include() 的,则 return()的值会被当作 include() 调用的返回值。如果在主脚本文件中调用 return(),则脚本中止运行。如果当前脚本文件是在 php.ini 中的配置选项 auto_prepend_file 或者 auto_append_file 所指定的,则此脚本文件中止运行。

更多信息见返回值。

Note: 注意既然 return() 是语言结构而不是函数,因此其参数没有必要用括号将其括起来。通常都不用括号,实际上也应该不用,这样可以降低 PHP 的负担。

Note: 当用引用返回值时永远不要使用括号,这样行不通。只能通过引用返回变量,而不是语句的结果。如果使用 return ($a); 时其实不是返回一个变量,而是表达式 ($a) 的值(当然,此时该值也正是 $a 的值)。