我正在尝试运行递归函数,但无法正常工作。我没有在代码中看到任何错误,所以也许用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/

10-10 01:04