几种有用的变型 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 Smarty初体验二 获取配置信息
Aug 08 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
PHP开发微信支付的代码分享
May 25 PHP
php有道翻译api调用方法实例
Dec 22 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
Feb 07 PHP
php显示指定目录下子目录的方法
Mar 20 PHP
PHP执行SQL文件并将SQL文件导入到数据库
Sep 17 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
Nov 17 PHP
PHP上传图片类显示缩略图功能
Jun 30 PHP
php中strtotime函数性能分析
Nov 20 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
Apr 05 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
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
php性能优化分析工具XDebug 大型网站调试工具
2011/05/22 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
2016/10/13 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
JSON扫盲帖 JSON.as类教程
2009/02/16 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
使用javascript实现Iframe自适应高度
2014/12/24 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
vue-test-utils初使用详解
2019/05/23 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
[46:55]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python 简易计算器程序,代码就几行
2009/08/29 Python
Python使用sax模块解析XML文件示例
2019/04/04 Python
了解不常见但是实用的Python技巧
2019/05/23 Python
Python实现Keras搭建神经网络训练分类模型教程
2020/06/12 Python
Python3爬虫ChromeDriver的安装实例
2021/02/06 Python
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
社团活动总结
2014/04/28 职场文书
生物科学专业自荐书
2014/06/20 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
幼儿教师师德师风自我剖析材料
2014/09/29 职场文书
租房协议书范例
2014/10/14 职场文书
爱心捐书倡议书
2015/04/27 职场文书
Python爬虫基础之简单说一下scrapy的框架结构
2021/06/26 Python
Python中的变量与常量
2021/11/11 Python
Ruby处理YAML和json数据
2022/04/18 Ruby
如何利用python实现列表嵌套字典取值
2022/06/10 Python