几种有用的变型 PHP中循环语句的用法介绍


Posted in PHP onJanuary 30, 2012

PHP手册中对它的语法定义如下:

for (expr1; expr2; expr3)

statement

下面说说for语句几种有用的变型。

1、无限循环

首先是人尽皆知的无限循环(亦可称"死循环")。由于空表达式null在语法上是有效的,所以我们可以把for语句的三个表达式留空,这样就会产生不断执行for嵌套语句的效果。

for (;;) {

//放置需要不断执行的语句

}

?>

虽然有一些任务会使用到无限循环,但是大多数程序任务,特别是PHP所能涉及的领域,在使用无限循环时都会添加一些终止循环的条件。

for (;;) {

//如果是公元2199年,则跳出循环

if (date('Y') == '2199') {

break;

}

}

?>

2、使用空表达式

接下来就是说说在初始化语句expr1中使用null语法,留空expr1最常见的作用就是完成更为复杂的初始化工作。

if (isset($i)) { 

unset($i); 

if ((int) date('') < 2008) { 

$i = 0; 

} else { 

$i = 1; 

} 

} else { 

$i =3; 

} 

for (;$i < 10;$i ) { 

echo $i; 

} 

?>

同样道理,迭代表达式expr3也可能留空,也可以利用这点编写更为复杂的迭代式,比如说根据不同的条件调用不同的迭代式。

而for语句中的条件语句expr2留空则是上面所说的无限循环,当然也可以添加一些更为复杂的条件去判断什么时候跳出循环,在此不在重复。

3、多重循环

使用多重循环来控制多个变量也是在for语句中使经常被忽略的一个特性。如下面的例子,在一般的任务中用到的一般会是双重循环,三重以上的循环一般意义不大。

<?php 
for ($i = 0, $j = 10;$i <= 10;$i , $j--) { 
echo "$i $j = 10\r\n"; 

} 

?>

以上代码将输出:

0 10 = 10

1 9 = 10

2 8 = 10

3 7 = 10

4 6 = 10

5 5 = 10

6 4 = 10

7 3 = 10

8 2 = 10

9 1 = 10

10 0 = 10

4、更为复杂的表达式

如果把for语句的三个表达式写得复杂一些,则可以用于优化算法。甚至可以使用没有循环体的for语句来完成一些任务。比如计算累加或阶乘:

<?php 
//计算1-5的累加结果,斌值到$j 

for ($i = 1,$j = 0; $i <= 5;$j = $i ); 

echo $j; 

//计算1-5的阶乘结果,斌值到$j 

for ($i = 1,$j = 1; $i <= 5;$j *= $i ); 

echo $j; 

?>

PHP借助了C语言的语法,一定程度上也会拥有C的特性,比如说强大的for循环语句就是一个典型的例子。

PHP 相关文章推荐
深入了解php4(1)--回到未来
Oct 09 PHP
让你的PHP同时支持GIF、png、JPEG
Oct 09 PHP
php 分库分表hash算法
Nov 12 PHP
php模拟js函数unescape的函数代码
Oct 20 PHP
php实现可以设置中奖概率的抽奖程序代码分享
Jan 19 PHP
PHP异常处理Exception类
Dec 11 PHP
PHP在线书签系统分享
Jan 04 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
php图像验证码生成代码
Jun 08 PHP
PHP简单实现记录网站访问量功能示例
Jun 06 PHP
Yii实现微信公众号场景二维码的方法实例
Aug 30 PHP
thinkphp 获取控制器及控制器方法
Apr 16 PHP
通过PHP修改Linux或Unix口令的方法分享
Jan 30 #PHP
php代码收集表单内容并写入文件的代码
Jan 29 #PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
Jan 27 #PHP
php木马webshell扫描器代码
Jan 25 #PHP
php addslashes及其他清除空格的方法是不安全的
Jan 25 #PHP
PHP中创建空文件的代码[file_put_contents vs touch]
Jan 20 #PHP
php中将数组存到文件里的实现代码
Jan 19 #PHP
You might like
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
2014/10/22 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
javascript prototype 原型链
2009/03/12 Javascript
浅谈Javascript事件模拟
2012/06/27 Javascript
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
js+HTML5实现视频截图的方法
2015/06/16 Javascript
基于jQuery实现返回顶部实例代码
2016/01/01 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
Vue实现附件上传功能
2020/05/28 Javascript
Python实现的网页截图功能【PyQt4与selenium组件】
2018/07/12 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
python实现flappy bird小游戏
2018/12/24 Python
Python用Try语句捕获异常的实例方法
2019/06/26 Python
python实现微信自动回复机器人功能
2019/07/11 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
css3个性化字体_动力节点Java学院整理
2017/07/12 HTML / CSS
css3 利用transform打造走动的2D时钟
2020/10/20 HTML / CSS
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
向领导表决心的话
2014/03/11 职场文书
学校运动会霸气口号
2014/06/07 职场文书
身边的榜样活动方案
2014/08/20 职场文书
银行授权委托书范本
2014/10/04 职场文书
汽车转让协议书范本
2014/12/07 职场文书
车队安全员岗位职责
2015/02/15 职场文书
投诉书范文
2015/07/02 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
防溺水主题班会教案
2015/08/12 职场文书
《角的初步认识》教学反思
2016/02/17 职场文书
《观潮》教学反思
2016/02/17 职场文书
劳务派遣管理制度(样本)
2019/08/23 职场文书
Python爬虫之爬取二手房信息
2021/04/27 Python