几种有用的变型 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 相关文章推荐
3
Oct 09 PHP
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
Mar 07 PHP
php cookie 登录验证示例代码
Mar 16 PHP
关于file_get_contents返回为空或函数不可用的解决方案
Jun 24 PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 PHP
php遍历目录输出目录及其下的所有文件示例
Jan 27 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
Jun 23 PHP
Laravel 4 初级教程之Pages、表单验证
Oct 30 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
Jan 05 PHP
ThinkPHP简单使用memcache缓存的方法
Nov 15 PHP
PHP实现随机数字、字母的验证码功能
Aug 01 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 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
使用Xdebug调试和优化PHP程序之[1]
2007/04/17 PHP
destoon复制新模块的方法
2014/06/21 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
PHP模版引擎原理、定义与用法实例
2019/03/29 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
2011/07/27 Javascript
javascript使用prototype完成单继承
2014/12/24 Javascript
jQuery中wrapAll()方法用法实例
2015/01/16 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
js实现a标签超链接提交form表单的方法
2015/06/24 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
jQuery ajax调用webservice注意事项
2017/10/08 jQuery
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
JavaScript实现移动端弹窗后禁止滚动
2020/05/25 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
[50:45]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第一场
2018/04/10 DOTA
Python中datetime模块参考手册
2017/01/13 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
Python通过cv2读取多个USB摄像头
2019/08/28 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
2021/03/02 Python
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
爱奇艺VIP会员:大剧抢先看
2018/07/11 全球购物
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
外贸业务员求职信范文
2013/12/12 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
2016年记者节感言
2015/12/08 职场文书
七年级作文之环保作文
2019/10/17 职场文书
500字作文之周记
2019/12/13 职场文书