php for 循环语句使用方法详细说明


Posted in PHP onMay 09, 2010

for循环只是一个多一点的代码,同时循环添加到它。而所涉及的一个循环的共同任务是:

设置一些计数器变量的初始值。
请检查条件语句是正确的。
执行中的代码循环。
增量在每个迭代结束通过循环计数器。
for循环允许你定义一个简单的代码行这些步骤。它似乎有一种奇怪的形式,所以一定要密切注意语法用!

for 循环的语法是:

for (expr1; expr2; expr3)
statement

第一个表达式(expr1)在循环开始前无条件求值一次。

expr2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。

expr3 在每次循环之后被求值(执行)。

每个表达式都可以为空或包括逗号分隔的多个表达式。表达式 expr2 中,所有用逗号分隔的表达式都会计算,但只取最后一个结果。expr2 为空意味着将无限循环下去(和 C 一样,PHP 认为其值为 TRUE)。这可能不像想象中那样没有用,因为经常会希望用 break 语句来结束循环而不是用 for 的表达式真值判断。

看简单实例一

FOR ($i = 0; $i <= 2; $i++) 
{ 
print "value is now " . $i . "<br>"; 
}

输出值

value is now 0
value is now 1
value is now 2

在第一循环,$i=0,这意味着表达,($i<= 2),为ture。因此,打印语句执行时,$i得到加1,变成1。

在第二循环,$ = 1,这意味着表达,($i<= 2),为ture。因此,打印语句执行时,$i得到加1,变成2。

在第三迭代,$i= 2,这意味着表达,($i<= 2),为ture。因此,打印语句执行时,$i递增,成为1 3。

在第四迭代,$i= 3,这意味着表达,($i<= 2),是假的。因此,PHP不去执行循环,不执行打印语句。

实例二

$brush_price = 5; echo "<table border="1" align="center">"; 
echo "<tr><th>Quantity</th>"; 
echo "<th>Price</th></tr>"; 
for ( $counter = 10; $counter <= 100; $counter += 10) { 
echo "<tr><td>"; 
echo $counter; 
echo "</td><td>"; 
echo $brush_price * $counter; 
echo "</td></tr>"; 
} 
echo "</table>";

输出值

Quantity Price
10 50
20 100
30 150
40 200
50 250
60 300
70 350
80 400
90 450
100 500

可以参考以下的例子,它们都显示数字 1 到 10:

<?php 
/* example 1 */ for ($i = 1; $i <= 10; $i++) { 
echo $i; 
} 
/* example 2 */ 
for ($i = 1; ; $i++) { 
if ($i > 10) { 
break; 
} 
echo $i; 
} 
/* example 3 */ 
$i = 1; 
for (;;) { 
if ($i > 10) { 
break; 
} 
echo $i; 
$i++; 
} 
/* example 4 */ 
for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++); 
?>

当然,第一个例子看上去最正常(或者第四个),但用户可能会发现在 for 循环中用空的表达式在很多场合下会很方便。

PHP 也支持用冒号的 for 循环的替代语法。

for (expr1; expr2; expr3): 
statement; 
... 
endfor;

我们经常需要对下面这样的数组进行遍历:
<?php 
/* 
* 我们想要在遍历的过程中改变以下数组中某些元素的值 
*/ 
$people = Array( 
Array('name' => 'Kalle', 'salt' => 856412), 
Array('name' => 'Pierre', 'salt' => 215863) 
); for($i = 0; $i < sizeof($people); ++$i) 
{ 
$people[$i]['salt'] = rand(000000, 999999); 
} 
?>

以上代码的问题,在于for的第二个表达式会导致代码执行很慢--因为每次循环时都要 计算一遍数组的长度。由于数组的长度始终不变,我们可以用一个中间变量来存储数组长度, 然后用这个变量作为for循环的第二个表达式。这样在循环的时候就可以直接使用该变量的值, 不用每次重新计算。 如下:
<?php 
$people = Array( 
Array('name' => 'Kalle', 'salt' => 856412), 
Array('name' => 'Pierre', 'salt' => 215863) 
); for($i = 0, $size = sizeof($people); $i < $size; ++$i) 
{ 
$people[$i]['salt'] = rand(000000, 999999); 
} 
?>
PHP 相关文章推荐
PHP安全编程之加密功能
Oct 09 PHP
eWebEditor v3.8 商业完整版 (PHP)
Dec 06 PHP
php GeoIP的使用教程
Mar 09 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
Aug 06 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
Aug 22 PHP
thinkphp配置连接数据库技巧
Dec 02 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
Dec 18 PHP
php通过修改header强制图片下载的方法
Mar 24 PHP
php根据用户语言跳转相应网页
Nov 04 PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 PHP
微信公众平台开发(五) 天气预报功能开发
Dec 03 PHP
laravel 数据验证规则详解
Oct 23 PHP
php 函数使用方法与函数定义方法
May 09 #PHP
php 获取select下拉列表框的值
May 08 #PHP
PHP foreach循环使用详解与实例代码
May 08 #PHP
php 在文件指定行插入数据的代码
May 08 #PHP
php将数据库导出成excel的方法
May 07 #PHP
PHP 编写大型网站问题集
May 07 #PHP
PHP5中使用DOM控制XML实现代码
May 07 #PHP
You might like
生成php程序的php代码
2008/04/07 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
javascript如何实现暂停功能
2015/11/06 Javascript
jQuery可见性过滤选择器用法示例
2016/09/09 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
livereload工具实现前端可视化开发【推荐】
2016/12/23 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
[14:24]Optic Gaming vs PSG LGD BO3
2018/06/07 DOTA
python每隔N秒运行指定函数的方法
2015/03/16 Python
python文件特定行插入和替换实例详解
2017/07/12 Python
python GUI实例学习
2017/11/21 Python
浅析python协程相关概念
2018/01/20 Python
深入理解Django的中间件middleware
2018/03/14 Python
python 定时任务去检测服务器端口是否通的实例
2019/01/26 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
python实现图像拼接
2020/03/05 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
Ralph Lauren意大利官方网站:时尚界最负盛名的品牌之一
2018/10/18 全球购物
服装厂厂长职责
2013/12/16 职场文书
市场营销管理毕业生自荐信
2014/03/03 职场文书
商务助理求职信范文
2014/04/20 职场文书
《明天,我们毕业》教学反思
2014/04/24 职场文书
建筑安全责任书范本
2014/07/24 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
成人成长感言如何写?
2019/08/16 职场文书
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python
Oracle中update和select 关联操作
2022/01/18 Oracle
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA