PHP入门教程之流程控制语句详解

在php中流程控制语句包括了while,for,if,switch,foreach,declare语句了,下面我来给各位入门者介绍一下流程控制语句使用方法.

在PHP中,流控制语句主要有条件语句和循环语句组成,其中,流控制语句有if/else和switch语句;循环语句有while和for语句。

1.IF语句

在PHP中,IF语句有两种语法结构,一种用大括号表示语句块,一种用冒号表示语句块,前者一般用于纯代码中,后者一般用于代码和HTML结合时,两种写法如下,实例代码:

  1. // 大括号表示语句块
  2. if ($value) {
  3. // 操作;
  4. } elseif($value) {
  5. // 操作;
  6. } else {
  7. // 操作;
  8. }
  9. // 冒号表示语句块
  10. if ($value) :
  11. // 操作;
  12. elseif($value) :
  13. // 操作;
  14. else :
  15. // 操作;
  16. endif;

2.switch语句

switch语句和C语言有些相似,它可以使用数字和字符串做为判断值,它执行的代码是,从第一个匹配值(或者default)开始,到遇到break为止,所以,在写程序的时候一定不要忘记写break,不然会执行所有分支,代码示例如下:

  1. switch ($value) {
  2. case 'a':
  3. case 'b':
  4. echo 'value is a or b.';
  5. break;
  6. case 'c':
  7. echo 'value is c.';
  8. break;
  9. default:
  10. echo 'value is others.';
  11. break;
  12. }

3.while语句

while语句和if语句一样,也用两种语法结构,大括号表示语句块以及冒号表示语句块表示语句块,两种写法如下:

  1. // 大括号表示语句块
  2. $i = 0;
  3. while ($i < 5) {
  4. echo $i;
  5. }
  6. // 冒号表示语句块
  7. $i = 0;
  8. while ($i < 5) :
  9. echo $i;
  10. endwhile;

4.do...while语句

do...while语句和while语句区别是while语句先判断后执行,而do...while语句是先执行后判断,也就是说,即便条件不符合要求,do...while语句也会执行一次,其写法如下:

  1. $i = 0;
  2. do {
  3. echo $i;
  4. } while ($i < 5);

5.for语句

for语句里要注意的是,它先执行初始化代码,然后每一次循环首先执行判断语句,执行循环会再执行自增自减函数,也就是说,如果条件不符合,循环不会被执行,其语法结构也有两种,大括号表示语句块以及冒号表示语句块表示语句块,两种写法如下:

  1. // 大括号表示语句块
  2. for ($i = 0; $i < 5; $i++) {
  3. echo $i;
  4. }
  5. // 冒号表示语句块
  6. for ($i = 0; $i < 5; $i++) :
  7. echo $i;
  8. endfor;

6.foreach语句

foreach语句用于遍历整个数组,和for一样,它的语法结构也有两种,大括号表示语句块以及冒号表示语句块表示语句块,两种写法如下:

  1. // 大括号表示语句块
  2. foreach($array as $value) {
  3. each $value;
  4. }
  5. // 冒号表示语句块
  6. foreach($array as $value) :
  7. each $value;
  8. endforeach;

7.declare语句

declare语句指每执行N条语句后调用一个函数,实例代码如下:

  1. register_tick_function('test');
  2. declare(ticks = 2) {
  3. print '1';
  4. print '2';
  5. print '3';
  6. print '4';
  7. print '5';
  8. }
  9. function test() {
  10. print 'declare
  11. ';
  12. }
  13. //这段代码的结果为
  14. //1
  15. //2
  16. //3