几种有用的变型 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 相关文章推荐
非常不错的MySQL优化的8条经验
Mar 24 PHP
php 在文件指定行插入数据的代码
May 08 PHP
php用正则表达式匹配中文实例详解
Nov 06 PHP
PHP生成唯一订单号
Jul 05 PHP
微信公众平台开发之配置与请求
Aug 26 PHP
学习php设计模式 php实现建造者模式
Dec 07 PHP
thinkPHP使用post方式查询时分页失效的解决方法
Dec 09 PHP
CodeIgniter视图使用注意事项
Jan 20 PHP
Yii视图CGridView列表用法实例分析
Jul 12 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
Sep 23 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 PHP
php png失真的原因及解决办法
Oct 24 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
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
php递归法读取目录及文件的方法
2015/01/30 PHP
php单例模式示例分享
2015/02/12 PHP
php操作MongoDB类实例
2015/06/17 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
jquery图片切换实例分析
2015/04/15 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
微信小程序 自定义对话框实例详解
2017/01/20 Javascript
JS实现复制功能
2017/03/01 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
微信小程序实现图片滚动效果示例
2018/12/05 Javascript
TypeScript类型声明书写详解
2019/08/28 Javascript
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
python模块之re正则表达式详解
2017/02/03 Python
Python中的单行、多行、中文注释方法
2018/07/19 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
基于HTML5 Canvas的3D动态Chart图表的示例
2017/11/02 HTML / CSS
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
欧姆龙医疗保健与医疗产品:Omron Healthcare
2020/02/10 全球购物
电厂职工自我鉴定
2014/02/20 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
公司采购主管岗位职责
2014/06/17 职场文书
Redis批量生成数据的实现
2022/06/05 Redis