以下是php帮助手册上的示例,意思是说有这样一种语法,但是没有说,这种特殊用法的功能是什么,用在何处,故发贴问一下
<?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);
?> 
资深的 C 语言用户可能熟悉另一种不同的 do-while 循环用法,把语句放在 do-while(0) 之中,在循环内部用 break 语句来结束执行循环。以下代码片段示范了此方法:
如果还不能立刻理解也不用担心。即使不用此“特性”也照样可以写出强大的代码来。

解决方案 »

  1.   

    你的代码等价于下述代码
    if ($i < 5) {
      echo "i is not big enough";
    } else {
      $i *= $factor;
      if ($i < $minimum_limit) {
        //...
      } else {
        echo "i is ok";
      }
    }你觉得差异在哪里?
      

  2.   

    我觉得没有差异呀,惟一区别就是用while包装一下,有什么必要呢?
      

  3.   

    未必,楼主好好看看这篇文章吧,看完应该就明白了
    http://tieba.baidu.com/f?kz=263292825
      

  4.   


    为了break因为php里没有goto语句,所以只能用do while + break代替了
      

  5.   

    我也认为这种方法,比goto语句好,毕竟条理清晰。
      

  6.   


    明显是goto语句比较好,这只是无奈之举,你瞧这代码,很多人都看不懂,增加阅读困难。何从几时,goto语句变得人人喊打,好像一旦用了goto就被视为是新手菜鸟,简直莫名其妙。
      

  7.   

    其实里面的第一种用法也不漂亮,最漂亮的方法是函数指针+List,用循环来遍历。
      

  8.   

    当然有用了,在检测post数据的时候一直用,因为主程序里不能用break,而多个if else会导致版面很难看