gpt4 book ai didi

php - 计算递归函数被调用的次数

转载 作者:可可西里 更新时间:2023-10-31 23:52:57 27 4
gpt4 key购买 nike

我需要知道递归函数在函数中被调用了多少次。这是我的功能:

function structure($x) {
$qry = mysql_query("SELECT `parent_id` FROM `categories` WHERE `categories_id`=$x");
$result = mysql_fetch_assoc($qry);
$cat = $result['parent_id'];
if($cat !=0) {
structure($cat);
}
echo $cat.' >';
}

我试过添加一个计数器,例如$i=0,然后 $i++,但每次调用函数时它当然会恢复到 $i=0。我已经尝试添加数组,并对数组进行计数,但当然每次调用该函数时它都必须设置一个新数组 $i=array()。

我认为可行的一种方法是在函数外部设置数组或计数器,但我不知道是否可以在函数外部调用函数中的变量。

关于如何在函数外部调用变量或者计算函数调用次数的更好方法有什么想法吗?

最佳答案

选项 1:通过引用传入变量

function structure($cat, &$counter) {
$counter++;
...
}

structure('foo', $counter);

echo $counter;

选项 2:使用 static 变量

function structure($cat) {
static $counter = 0;
echo ++$counter;
...
}

选项 3:使用 global 变量(不,不!)

$counter = 0;

function structure($cat) {
global $counter;
$counter++;
...
}

选项 4:使用闭包

$counter = 0;

$structure = function ($cat) use (&$counter) {
$counter++;
...
}

$structure('foo');
echo $counter;

关于php - 计算递归函数被调用的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17082608/

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