几种有用的变型 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 相关文章推荐
用PHP的ob_start() 控制您的浏览器cache
Aug 03 PHP
PHP 引用文件技巧
Mar 02 PHP
php array的学习笔记
May 16 PHP
php缓冲 output_buffering的使用详解
Jun 13 PHP
php header功能的使用
Oct 28 PHP
php数组索引的Key加引号和不加引号的区别
Aug 19 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
Nov 05 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
Dec 09 PHP
php从身份证获取性别和出生年月
Feb 09 PHP
thinkPHP简单调用函数与类库的方法
Mar 15 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
php访问对象中的成员的实例方法
Nov 17 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学习 变量使用总结
2011/03/24 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
PHP register_shutdown_function函数的深入解析
2013/06/03 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
js获取变量
2006/08/24 Javascript
jqPlot 基于jquery的画图插件
2011/04/26 Javascript
dwz 如何去掉ajaxloading具体代码
2013/05/22 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
js生成随机数方法和实例
2017/01/17 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
彻底弄懂 JavaScript 执行机制
2018/10/23 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
Python3读取zip文件信息的方法
2015/05/22 Python
将Dataframe数据转化为ndarry数据的方法
2018/06/28 Python
python系列 文件操作的代码
2019/10/06 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
keras实现图像预处理并生成一个generator的案例
2020/06/17 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
canvas实现按住鼠标移动绘制出轨迹的示例代码
2018/02/05 HTML / CSS
什么是聚集索引和非聚集索引
2012/01/17 面试题
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
企业项目策划书
2014/01/11 职场文书
运动会广播稿100字
2014/01/11 职场文书
欢送退休感言
2014/02/08 职场文书
《猫》教学反思
2014/02/26 职场文书
员工安全承诺书
2014/05/22 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
催款通知书范文
2015/04/17 职场文书
心灵捕手观后感
2015/06/02 职场文书
python process模块的使用简介
2021/05/14 Python
SpringBoot Http远程调用的方法
2022/08/14 Java/Android