几种有用的变型 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 相关文章推荐
再次研究下cache_lite
Feb 14 PHP
解析在apache里面给php写虚拟目录的详细方法
Jun 24 PHP
PHP实现单例模式最安全的做法
Jun 13 PHP
php隐藏IP地址后两位显示为星号的方法
Nov 21 PHP
php快速查找数据库中恶意代码的方法
Apr 01 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
Aug 17 PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
Mar 01 PHP
PHP创建/删除/复制文件夹、文件
May 03 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
Dec 29 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
PHP ADODB生成下拉列表框功能示例
May 29 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
php下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
PHP的引用详解
2015/02/22 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
php实现微信企业转账功能
2018/10/02 PHP
javascript基本语法分析说明
2008/06/15 Javascript
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
javascript实现禁止复制网页内容
2014/12/16 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
Postman动态获取返回值过程详解
2020/06/30 Javascript
vue根据条件不同显示不同按钮的操作
2020/08/04 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
python 多线程将大文件分开下载后在合并的实例
2018/11/09 Python
python3实现名片管理系统
2020/11/29 Python
介绍一款python类型检查工具pyright(推荐)
2019/07/03 Python
Python代码太长换行的实现
2019/07/05 Python
python线性插值解析
2020/07/05 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
2021/01/05 Python
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
主管会计岗位责任制
2014/02/10 职场文书
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
大学生标准自荐书
2014/06/15 职场文书
普通话宣传标语
2014/06/26 职场文书
民政工作个人总结
2015/02/28 职场文书
改造DE1103三步曲
2022/04/07 无线电