gpt4 book ai didi

php - 递归无限循环?

转载 作者:行者123 更新时间:2023-12-03 07:11:02 25 4
gpt4 key购买 nike

所以我遇到了一个问题,我想出了如何解决,但我很好奇为什么。所以这是一段代码

<?php

function test($attempt=1){
if ($attempt == 5){
echo "Done!";
}else{
echo 'recursion!';
test($attempt++);
}

}
$test = test();

现在这段代码应该第一次运行,检查,进入else语句,然后再次运行测试,但这次使用$attempt++,直到最终==到5,然后它将回显完成并完成。然而这不起作用并且它永远循环。但是,可以通过在进入函数后立即将变量分配给另一个变量来修复它,如下所示

<?php

function test($attempt=1){
$nextAttempt = $attempt+1;
if ($attempt == 5){
echo "Done!";
}else{
echo 'recursion!';
test($nextAttempt);
}

}
$test = test();

有什么想法可以解释这是为什么吗?

最佳答案

您想要变量的预增量而不是后增量。这将在将变量 $attempt 作为参数传递给函数之前而不是之后增加它。

所以基本上你需要 test(++$attempt); 而不是 test($attempt++);

带有工作示例的沙箱:http://sandbox.onlinephpfunctions.com/code/c50731815588d55bd079e701f1c5dde9e7148696

关于php - 递归无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37666985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com