不论是PHP还是别的语法,程序总是由若干条语句组成。

从执行方式上看,语句的控制结构分为以下三种:

1、  顺序结构:从第一条语句到最后一条语句完全顺序执行;

2、  选择结构:根据用户输入或语句的中间结果去执行若干任务;

3、  循环结构:根据某条条件重复地执行某项任务若干次,或直到达成目标即可。

 

PHP中 有三种控制语句用以实现选择结构与循环结构:

1、  条件控制语句:if、else、elseif和switch;

2、  循环控制语句:foreach、while、do while和for;

3、  转移控制语句:break、continue和return。

条件控制语句:

If语句,用法:

 If(A)

      Statement1;

    Else

     Statement2;

解析:如果A为true,则执行statement1;否则执行statement2。

例子,代码:

<?php

  $a = 59;  //根据$a的值,判断是否及格。如果>=60则输出及格

  if($a>=60){

 echo “及格”;

   }else

  echo “不及格”;

?>

If···elseif···else语句,用法:

If(A)

   Statement1; 

Elseif(B)

   Statement2; 

Else

 Statement3;

解析:如果A为TRUE,则执行statement1。否则,如果B的值为TRUE,则statement2;否则执行statement3。当然:if语句也可以嵌套。

下面是个If···elseif···else的例子:

 <?php

  $a = 59;

  if($a>=60)        //在大于等于60的情况里在进行分类

 {

  if($a==100)

  echo “满分”;

  elseif($a>=90)

  echo “优秀”;

 else

  echo “及格”;

 }

 else

  echo “不及格”;

 ?> 

Switch语句,语法如下:

Switch(A)

{

 Case val1:

  Statement1;

  Break;

 Case val2:

  Statement2;

  Break;

 Default:

  Statement3;

 }

 

当一个case语句中的值和switch表达式A的值匹配时,PHP开始执行语句,直到switch程序段结束或者遇到第一个break语句为止

(如果没有遇到break,则PHP将继续执行下一个case)。

下面是一个没有break的例子:

 <?php

  switch($leve1)

 {

  case 3:

   echo “高级”;

  case 2:

       echo “中级”;

     case 1:

    echo “初级”;

  default:

    echo “错误的等级值”;

 }

 ?>

由此你想到了什么??

 <?php

  $level = 3;

  switch($level)

 {

  case 3:

   echo “赋予管理员权限”;

  case 2:

    echo “赋予站务权限”;

  case 1:

     echo “赋予版主权限”;

  default:

   echo “赋予普通用户权限”;

 }

 ?> 

与if相比switch达到了更高的效率:

 <?php

  $a = 59;

 switch($a)

  {

 case $a == 100;

  echo “满分”;

  break;

 case $a >= 90;

  echo “优秀”;

  break;

 case $a >= 60;

  echo “及格”;

  break;

 default:

  echo “不及格”;

 }

 ?>

那么循环语句是干嘛用的呢?当然是用于反复地执行某一个操作。

While 与do···while

While的语法:

While(A)

 Statement;

解析:只要while表达式中的A为TRUE,就执行statement。

do···while的语法:

 do

 {

  Statements;

 }

 while(A)

do···while与while的区别只是在循环结束时do···while进行检查,不管循环的条件满足与否,do···while都将执行一次。

例如:

 <?php

  $a = 5;          //先判断$a是否大于5,如果大于5则执行。

  while($a>5)

 {

  echo “This is  while.”;

  $a–;

 }

 do               //先执行do之内的语句,然后进行判断。

 {

  echo “This is do…while.”;

  $a–;

 }

 while($a > 5)

 ?>

For语句,语法:

 For(A;B;C)

  Statement;

分析:第一个表达式在循环开始时先无条件的执行一次,一般A都为赋值语句;B在循环开始前运行,如果为TRUE,

则继续循环,执行循环的嵌套语句;C在循环之后执行,一般都是自加自减运算。

代码:

 <?php

  for($a = 5;$a > 5;$a–);

  echo “This is for”;

 ?>

Foreach语句,用于数组的遍历,以后将会学到。

转移控制语句

PHP中主要有三种转移控制语句:break、continue和return。

1、  break语句

break语句用于结束当前循环,break可以接受一个可选的数字参数来决定跳出几重循环。

例子:

 <?php

  $a = 5;

  $b = 10;

 while($a <100)   //$a<100开始循环

 {

  echo “a = “.$a.”<BR>”;  //输出$a,“.”时连接运算符,相当于java中的“+”

 while($b > 0)           //$b>0,开始循环

 {

  echo “b = ” .$b.”<BR>”;  //输出$b

  $b–;

  if($b == 3 )                 //如果$b==3,则跳出while($b>0)

  break;              

 }

  $a++;

  if($a == 30)

  break;           //如果$a==30,就跳出while($a<100)

 }

 ?> 

Continue语句

Continue用于跳出本次循环,与break不同的是,continue跳出后将继续执行下一次循环。

Return语句 Return语句用于结束一个函数或者一个脚本文件。如果在一个函数中调用return语句将立即结束这个函数的执行,并将它的值作为参数返回。

当然,在PHP中也可以将return当做一个函数来使用。如return(),并在括号内写上要返回的参数。这种用法并不常见。

(基础篇)PHP流程控制语句的更多相关文章

  1. 基础语法-其它流程控制语句break和continue

    基础语法-其它流程控制语句break和continue 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.break语句 /** * break语句 * @author 尹正杰 * ...

  2. [dart学习]第六篇:流程控制语句

    经过前面的基础知识了解学习,我们今天可以进入语句模块啦. dart主要有以下流程控制语句: if-else for循环 while和do-while循环 break和continue switch-c ...

  3. Python基础2:流程控制语句 while / for循环

    [ while 循环 ] 如果要计算1+2+3,我们可以直接写表达式: >>> 1 + 2 + 3 要计算1+2+3+...+10,勉强也能写出来. 但是,要计算1+2+3+...+ ...

  4. 03-Java基础语法【 流程控制语句】

    重要知识记录: 1.流程控制 顺序结构:根据编写的顺序,从上到下进行运行. 2.判断语句 1)判断语句1--if if(判断条件){ 执行语句: } 2)判断语句2--if...else if(判断条 ...

  5. C#基础篇三流程控制2

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P01R ...

  6. shell重温---基础篇(流程控制&if判断&for&while&循环操作)

        和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search( ...

  7. python 学习之 基础篇三 流程控制

    前言: 一. python中有严格的格式缩进,因为其在语法中摒弃了“{}”来包含代码块,使用严格的缩进来体现代码层次所以在编写代码的时候项目组要严格的统一器缩进语法,一个tab按键设置为四个空格来缩进 ...

  8. js入门第二篇之流程控制语句

    表达式语句: 一个表达式可以产生一个值,有可能是运算.函数调用 字面量 表达式可以放在任何需要值的地方. 语句: 语句可以理解成一个行为,循环语句和判断语句就是典型的语句,一个程序有多个语句组成. 流 ...

  9. Python基础教程,流程控制语句详解

    1.程序结构 计算机在解决问题时,分别是顺序执行所有语句.选择执行部分语句.循环执行部分语句,分别是:顺序结构.选择结构.循环结构.如下图: 很多人学习python,不知道从何学起.很多人学习pyth ...

随机推荐

  1. 使用NuGet时的一个乌龙

    问题描述 最近自己做的一个项目,计划开始使用NuGet来管理dll,但是遇到一个奇怪,但是结果证明是个乌龙的问题. 新建一个WebApi项目,使用NuGet管理第三方dll,其中有引用Newtonso ...

  2. 让你的WPF程序使用多线程——BackgroundWorker

    在wpf中可以使用许多方法执行异步操作.利用.NET的芳芳就是手动创建一个新的System.Threading.Thread对象,提供一步代码,并使用THread.Start()方法加载代码.这种方法 ...

  3. [转]AndroidTolls国内镜像

    AndroidDevTools简介 Android Dev Tools官网地址:www.androiddevtools.cn 收集整理Android开发所需的Android SDK.开发中用到的工具. ...

  4. Code First Migrations更新数据库结构的具体步骤

    一.打开程序包管理器控制台 当你的实体模型与数据库架构不一致时,引发以下错误:The model backingthe 'SchoolContext' context has changed sinc ...

  5. CoHTMLDocument

    http://blog.csdn.net/dlwxn/article/details/2860329 http://www.itnose.net/detail/120267.html 不知道是 线程内 ...

  6. 戴文的Linux内核专题:02源代码

    转自Linux中国 在下载并解压内核源代码后,用户可以看到许多文件夹和文件.尝试去找一个特定的文件或许是一个挑战.谢天谢地,源代码以一个特定的方式组织的.这使开发者能够轻松找到任何文件或者内核的一部分 ...

  7. 赋值运算符、拷贝初始化和this指针

    一.赋值运算符和拷贝构造函数(重载技术) 赋值运算符和拷贝构造函数有编译器默认提供,但如果想做更复杂的事,需要重载. 1.下面用一个简单的例子先区分一下赋值运算符和拷贝构造函数: #include&l ...

  8. 【转发】du命令 实现Linux 某个文件夹下的文件按大小排序

    1. df -lh 2. du -s /usr/* | sort -rn这是按字节排序 3. du -sh /usr/* | sort -rn这是按兆(M)来排序 4.选出排在前面的10个du -s ...

  9. MySQL数据库远程连接

    12.00 MySQL数据库远程连接 参考: http://www.jb51.net/article/24508.htm http://www.linuxdiyf.com/viewarticle.ph ...

  10. DDOS攻击原理及防护方法论

      从 07年的爱沙尼亚DDOS信息战,到今年广西南宁30个网吧遭受到DDOS勒索,再到新浪网遭受DDOS攻击无法提供对外服务500多分钟. DDOS愈演愈烈,攻击事件明显增多,攻击流量也明显增大,形 ...