求助,这段php代码为什么会陷入死循环

发布网友 发布时间:2022-04-06 07:26

我来回答

6个回答

热心网友 时间:2022-04-06 08:56

这不是一个死循环, 是9个死循环。

function fun($i=0){
$i++;
echo $i.'<br/>';
while($i<10){       // 首次调用这个函数的时候,这里已经是一个死循环了,
fun($i);    // 在这里, $i 永远是1,所以永远小于10
}
}

fun();

执行第二次的时候,$i 永远是2, 还是小于10,又是一个死循环, 以此类推。

如果想输出1到10你不用写这么复杂的, 这样写即可:

function outNumber() {
static $number = 1;
echo $number;
$number += 1;
if ($number > 10) return;
outNumber();
}


outNumber();

热心网友 时间:2022-04-06 10:14

如果要输出1-10则将while改为if。
递归函数需要有退出递归的条件判断,不然就会出现死循环
因为while是一个循环语句,$i=10后会无限执行while循环

热心网友 时间:2022-04-06 11:48

谁教你这样写代码的,另外你的$i++只执行一次,没有写到while循环,fun函数你这样在while调用,很容易会崩坏服务器的

function fun($i=0){
    while($i<10){
        $i++;
        echo $i.'<br/>';
    }
}
fun();

热心网友 时间:2022-04-06 13:40

function fun($i=0) {                                                                    
    $i++;echo$i.'<br/>';                                                                
    while($i<10){                                                                       
        fun($i);  // 递归调用                                                           
    }                                                                                   
}                                                                                       
                                                                                                                                                                            
fun();

刚开始 输出 1 2 3 4 5 6 7 8 9 10 10后面一直输出10然后程序死循环,函数自身调用自身,这叫递归,但是递归没有出口,所以就死循环了!

热心网友 时间:2022-04-06 15:48

没错,9个死循环 永远跳不出来了 哈哈哈哈

热心网友 时间:2022-04-06 18:12

学习PHP技能知识,不妨关注“广东优就业”,更多IT行业技能干货等着你

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com