php循环控制语句
在php中循环语句我们常用的就几种,while,do while ,for(),foreach这四种,也是大家开发中常用到的循环语句了,有需要的朋友可以参考一下,本教程一一来讲一下这种语句的用法.
Foreach语句
Foreach循环是php4.0引进来的,只能用于数组,在php5中,又增加了对对象的支持,该语句的语法格式为:
foreach(array_expression as $value)
statement;
或如下:
- Foreach(array_expression as $key => $value)
- statement;
- FOREACH ($array_variable as $value)
- {
- [code to execute]
- }
- //or
- FOREACH ($array_variable as $key => $value)
- {
- [code to execute]
- }
在这两种情况下,多次[代码执行]将被处死是等于在$ array_variable数组元素的个数,让我们来看一个例子,假设我们有下面的代码段:
- $array1 = array(1,2,3,4,5);
- FOREACH ($array1 as $abc)
- {
- print "new value is " . $abc*10 . "<br>";
- }
- //输出结果
- //new value is 10
- //new value is 20
- //new value is 30
- //new value is 40
- //new value is 50
foreach循环以上经历了所有5个元素的数组$ array1,每次打印出一份声明中含有10倍的数组元素的值.
foreach作用是遍历当前数组的所有值出来并且赋给$var
再来看一个foreach 对多维数据操作实例:
- $s = array(array(1,2),array(3,4),array(5,6));
- foreach( $s as $v => $_v )
- {
- foreach( $_v as $vc => $_vc )
- {
- echo $_vc[0],'|'.$_vc[1],'<br />';
- //print_r($_vc);
- }
- }
for语句
最基于的遍历,代码如下:
- <?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++);
- ?>
遍历数组,代码如下:
- <?php
- /*
- * This is an array with some data we want to modify
- * when running through the for loop.
- */
- $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);
- }
- ?>
下面再看while 与do while
While循环是php中最简单的循环语句,他的语法格式是:
- While (expression){
- statement;
- }
当表达式expression的值为真时,将执行statement语句,执行结束后,再返回到expression表达式继续进行判断,直到表达式的值为假时,才跳出循环.代码如下:
- <?php
- /* example 1 */
- $i = 1;
- while ($i <= 10) {
- echo $i++; /* the printed value would be
- $i before the increment
- (post-increment) */
- }
- /* example 2 */
- $i = 1;
- while ($i <= 10):
- echo $i;
- $i++;
- endwhile;
- ?>
Do…While语句
While语句还有一种形式的表示,Do…While.语法为:
- Do{
- statement;
- }While(expression);
两者的区别在于:Do…While语句要比While语句多循环一次。
当While表达式的值为假时,While循环直接跳出当前循环,而Do…While语句则是先执行一遍程序块,然后再对表达式进行判断.
实例代码如下:
- <?php
- do {
- if ($i < 5) {
- echo "i is not big enough";
- break;
- }
- $i *= $factor;
- if ($i < $minimum_limit) {
- break;
- }
- echo "i is ok";
- /* process i */
- } while (0);
- ?>