php循环控制语句

在php中循环语句我们常用的就几种,while,do while ,for(),foreach这四种,也是大家开发中常用到的循环语句了,有需要的朋友可以参考一下,本教程一一来讲一下这种语句的用法.

Foreach语句

Foreach循环是php4.0引进来的,只能用于数组,在php5中,又增加了对对象的支持,该语句的语法格式为:

foreach(array_expression as $value)

statement;

或如下:

  1. Foreach(array_expression as $key => $value)
  2. statement;
  3. FOREACH ($array_variable as $value)
  4. {
  5. [code to execute]
  6. }
  7. //or
  8. FOREACH ($array_variable as $key => $value)
  9. {
  10. [code to execute]
  11. }

在这两种情况下,多次[代码执行]将被处死是等于在$ array_variable数组元素的个数,让我们来看一个例子,假设我们有下面的代码段:

  1. $array1 = array(1,2,3,4,5);
  2. FOREACH ($array1 as $abc)
  3. {
  4. print "new value is " . $abc*10 . "<br>";
  5. }
  6. //输出结果
  7. //new value is 10
  8. //new value is 20
  9. //new value is 30
  10. //new value is 40
  11. //new value is 50

foreach循环以上经历了所有5个元素的数组$ array1,每次打印出一份声明中含有10倍的数组元素的值.

foreach作用是遍历当前数组的所有值出来并且赋给$var

再来看一个foreach 对多维数据操作实例:

  1. $s = array(array(1,2),array(3,4),array(5,6));
  2. foreach( $s as $v => $_v )
  3. {
  4. foreach( $_v as $vc => $_vc )
  5. {
  6. echo $_vc[0],'|'.$_vc[1],'<br />';
  7. //print_r($_vc);
  8. }
  9. }

for语句

最基于的遍历,代码如下:

  1. <?php
  2. /* example 1 */
  3. for ($i = 1; $i <= 10; $i++) {
  4. echo $i;
  5. }
  6. /* example 2 */
  7. for ($i = 1; ; $i++) {
  8. if ($i > 10) {
  9. break;
  10. }
  11. echo $i;
  12. }
  13. /* example 3 */
  14. $i = 1;
  15. for (; ; ) {
  16. if ($i > 10) {
  17. break;
  18. }
  19. echo $i;
  20. $i++;
  21. }
  22. /* example 4 */
  23. for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
  24. ?>

遍历数组,代码如下:

  1. <?php
  2. /*
  3. * This is an array with some data we want to modify
  4. * when running through the for loop.
  5. */
  6. $people = Array(
  7. Array('name' => 'Kalle', 'salt' => 856412),
  8. Array('name' => 'Pierre', 'salt' => 215863)
  9. );
  10. for($i = 0; $i < sizeof($people); ++$i)
  11. {
  12. $people[$i]['salt'] = rand(000000, 999999);
  13. }
  14. ?>

下面再看while 与do while

While循环是php中最简单的循环语句,他的语法格式是:

  1. While (expression){
  2. statement;
  3. }

当表达式expression的值为真时,将执行statement语句,执行结束后,再返回到expression表达式继续进行判断,直到表达式的值为假时,才跳出循环.代码如下:

  1. <?php
  2. /* example 1 */
  3. $i = 1;
  4. while ($i <= 10) {
  5. echo $i++; /* the printed value would be
  6. $i before the increment
  7. (post-increment) */
  8. }
  9. /* example 2 */
  10. $i = 1;
  11. while ($i <= 10):
  12. echo $i;
  13. $i++;
  14. endwhile;
  15. ?>

Do…While语句

While语句还有一种形式的表示,Do…While.语法为:

  1. Do{
  2. statement;
  3. }While(expression);

两者的区别在于:Do…While语句要比While语句多循环一次。

当While表达式的值为假时,While循环直接跳出当前循环,而Do…While语句则是先执行一遍程序块,然后再对表达式进行判断.

实例代码如下:

  1. <?php
  2. do {
  3. if ($i < 5) {
  4. echo "i is not big enough";
  5. break;
  6. }
  7. $i *= $factor;
  8. if ($i < $minimum_limit) {
  9. break;
  10. }
  11. echo "i is ok";
  12. /* process i */
  13. } while (0);
  14. ?>