我们说我有一个简单的代码:
while(1) {
myend();
}
function myend() {
echo rand(0,10);
echo "<br>";
if(rand(0,10) < 3) break;
}
这不适用于错误代码&#39;致命错误:无法在线上突破/继续1级&#39;。
那么在subfunctin执行期间是否有可能终止循环?
答案 0 :(得分:3)
使循环条件取决于函数的返回值:
$continue = true;
while( $continue) {
$continue = myend();
}
然后,将您的功能更改为:
function myend() {
echo rand(0,10);
echo "<br>";
return (rand(0,10) < 3) ? false : true;
}
答案 1 :(得分:1)
没有。不应该;如果你的函数被调用到你不在循环中的某个地方,你的代码就会停止。在上面的示例中,您的调用代码应检查函数的返回值,然后决定是否停止循环。例如:
while(1) {
if (myend())
break;
}
function myend() {
echo rand(0,10);
echo "<br>";
return rand(0,10) < 3;
}
答案 2 :(得分:1)
使用:
$cond = true;
while($cond) {
$cond = myend();
}
function myend() {
echo rand(0,10);
echo "<br>";
if(rand(0,10) < 3) return false;
}