我正在尝试运行递归函数,但无法正常工作。我没有在代码中看到任何错误,所以也许用PHP无法实现?
<?php
$herpNum = 0;
function herp() {
if ($herpNum == 22) {
echo "done";
} else {
$herpNum = $herpNum+1;
echo $herpNum."<br/>";
herp();
}
}
herp();
?>
当我运行它时,结果只是一长串1。
最佳答案
由于$ herpNum与函数不在同一个范围内,因此它将在函数内创建一个新的$ herpNum,该函数默认为0,然后向其添加1。
您可以将其作为争论传递,也可以将其作为全局变量。
$herpNum = 0;
function herp($herpNum) {
if ($herpNum == 22) {
echo "done";
} else {
$herpNum = $herpNum+1;
echo $herpNum."<br/>";
herp($herpNum);
}
}
herp($herpNum);
要么
$herpNum = 0;
function herp() {
global $herpNum;
if ($herpNum == 22) {
echo "done";
} else {
$herpNum = $herpNum+1;
echo $herpNum."<br/>";
herp();
}
}
herp();
关于php - 简单的递归函数不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13924456/