(基础篇)PHP流程控制语句
不论是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流程控制语句的更多相关文章
- 基础语法-其它流程控制语句break和continue
基础语法-其它流程控制语句break和continue 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.break语句 /** * break语句 * @author 尹正杰 * ...
- [dart学习]第六篇:流程控制语句
经过前面的基础知识了解学习,我们今天可以进入语句模块啦. dart主要有以下流程控制语句: if-else for循环 while和do-while循环 break和continue switch-c ...
- Python基础2:流程控制语句 while / for循环
[ while 循环 ] 如果要计算1+2+3,我们可以直接写表达式: >>> 1 + 2 + 3 要计算1+2+3+...+10,勉强也能写出来. 但是,要计算1+2+3+...+ ...
- 03-Java基础语法【 流程控制语句】
重要知识记录: 1.流程控制 顺序结构:根据编写的顺序,从上到下进行运行. 2.判断语句 1)判断语句1--if if(判断条件){ 执行语句: } 2)判断语句2--if...else if(判断条 ...
- C#基础篇三流程控制2
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P01R ...
- shell重温---基础篇(流程控制&if判断&for&while&循环操作)
和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search( ...
- python 学习之 基础篇三 流程控制
前言: 一. python中有严格的格式缩进,因为其在语法中摒弃了“{}”来包含代码块,使用严格的缩进来体现代码层次所以在编写代码的时候项目组要严格的统一器缩进语法,一个tab按键设置为四个空格来缩进 ...
- js入门第二篇之流程控制语句
表达式语句: 一个表达式可以产生一个值,有可能是运算.函数调用 字面量 表达式可以放在任何需要值的地方. 语句: 语句可以理解成一个行为,循环语句和判断语句就是典型的语句,一个程序有多个语句组成. 流 ...
- Python基础教程,流程控制语句详解
1.程序结构 计算机在解决问题时,分别是顺序执行所有语句.选择执行部分语句.循环执行部分语句,分别是:顺序结构.选择结构.循环结构.如下图: 很多人学习python,不知道从何学起.很多人学习pyth ...
随机推荐
- 投资统计查询sql
select COUNT(*) from YYD_Users_RegInfo where regTime between '2016-07-11 00:00:00' and '2016-07-11 2 ...
- Oracle实现自增方式:序列+触发器
Oracle不能像MySQL那样设置主键自增,Oracle用 <序列+触发器>的方式使数据表的一列或多列实现自增 序列sequence+触发器trigger:实现数据表S_DEPART中的 ...
- iOS 下如果存在UIScrollerView 使用UIScreenEdgePanGestureRecognizer实现侧滑效果失效的问题
当你在使用UIScreenEdgePanGestureRecognizer手势实现侧滑的时候,如果后期你导航控制器push出的界面中包含UIScrollerView,这个时候你会发现,侧滑效果无法实现 ...
- matlab中如何保留指定的变量的数据
在使用matlab时,通常要将计算的结果保存到mat文件中.使用的命令是: save filename 但是用上述命令保存的时候,会将计算过程中的其他变量一起保存了.这中粗糙的保存有以下缺点: (1) ...
- Android的R.java文件
1.Android资源管理简介: Android应用程序资源可以分为两大类,分别放在assets和res文件夹下.assets目录下保存的是一些原始的文件,可以以任何方式来进行组织.这些文件最终会被原 ...
- NSURLSession的使用
虽然在iOS7引入NSURLSession时,就知道NSURLConnection会最终被苹果放弃,但人总是喜欢做熟悉的事情,在NSURLConnection还可以使用时,就懒得学习这新玩意了,而且本 ...
- CentOS 7.0默认使用的是firewall作为防火墙。
systemctl start firewalld.service#启动firewallsystemctl stop firewalld.service#停止firewallsystemctl dis ...
- 一个很好介绍js的例子
function UpdateInit(opt){ this.init(opt);} UpdateInit.prototype={ loadUrl:null, loadParam:null, befo ...
- 禁用gridview默认点击效果
cf_gridview.setSelector(new ColorDrawable(Color.TRANSPARENT)); 然后自己给做一个按下的效果xml文件
- 转:115个Java面试题和答案——终极列表(上)
转自:http://www.importnew.com/10980.html 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的 ...