比如一个for循环,当其中的某一个循环中的代码执行时间超长,那么,这个循环下的其它循环就没办法执行下去了.
请问PHP有没有限制每个循环的代码的执行时间,当某个循环中的代码运行时间过长,就给个信号后,再继续下一次循环.

解决方案 »

  1.   

      这个好象是 web服务器配置问题吧,timeout 。。
     根本不是程序控制的 /。
      

  2.   

    PHP配置程序最大执行时间
    只要你设的时间够长随便你循环要势行多久都可以,就算是死循环也会一直跑下去直到死机
    PHP.INI中
    max_execution_time = 300 
    后面的时间单位为秒
    设为大于你程序最长的执行时间
      

  3.   

    lz是要超时后能够去跑下一个循环
    如果是c的做法,应该是开个子进程或者子线程,用来做循环里的逻辑
    父进程或主线程中判断如果超时就强行结束它php里做也可以做,lz有兴趣去查一下手册里 Process Control Functions
      

  4.   

    <?php
    /**
    * Simple function to replicate PHP 5 behaviour
    */
    function microtime_float()
    {
        list($usec, $sec) = explode(" ", microtime());
        return ((float)$usec + (float)$sec);
    }$time_start = microtime_float();// Sleep for a while
    usleep(100);$time_end = microtime_float();
    $time = $time_end - $time_start;echo "Did nothing in $time seconds\n";
    ?> 
      

  5.   

    PHP没法实现吧?
    在循环里面的时候,执行某条语句,如果不执行完这条语句没法比较时间戳。执行完可能就超时了。
      

  6.   

    hehe 感觉可以的
    在每次循环结束之后判断下时间戳
    如果超出了就可以了LZ的意思不是一条语句
    说的是一个循环
      

  7.   

    笨的做法可以计算循环次数.比如一个for强制其在运行第5000次时断开.
    聪明点就计算起始时间戳到当前循环的用时.