php – 计算调用递归函数的次数
发布时间:2020-12-13 22:14:51 所属栏目:PHP教程 来源:网络整理
导读:我需要知道在函数内调用递归函数的次数.这是我的功能: 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) { st
我需要知道在函数内调用递归函数的次数.这是我的功能:
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:使用静态变量 function structure($cat) { static $counter = 0; echo ++$counter; ... } 选项3:使用全局变量(不,不!) $counter = 0; function structure($cat) { global $counter; $counter++; ... } 选项4:使用闭包 $counter = 0; $structure = function ($cat) use (&$counter) { $counter++; ... } $structure('foo'); echo $counter; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |