function count_this_bl($uid,$k,$rand_num)
{
global $_SGLOBAL;
static $rand = 0;
static $num3 = 0;
if($rand != $rand_num)
{
$num3 = 0;
$rand = $rand_num;
}
static $i = 0; //我定义static 的目的是让它 循环 $k次后,就停止了, $k 是层次。
for($i = 0;$i < $k;$i++) // $k 层次
{
$result = $_SGLOBAL['db']->fetch_one('select level1,level2,level3 from uc_level where uid='.$uid);
if($result)
{
for($y = 0;$y < 3;$y++) //判断 L1,L2,L3 是否为空
{
if($result[$y]) //继续 L -> $y 下层
{
$num3++;
count_this_bl($result[$y],$k,$rand);
}
}
}
}
return $num3;
}函数参数: $uid 父级uid, $k 每层最多次数, $rand_num随机数,防止多次调用时存在静态变量.问题描述: 现在调用 count_this_bl(1308534381,2,mt_rand()); $k=2, 限制不了 2 层, 它还是会继续往下调用函数。.
数据表图:这个问题困扰我两天了. 头痛. 有爱好的研究的请加我QQ 100-9798-715.
{
global $_SGLOBAL;
static $rand = 0;
static $num3 = 0;
if($rand != $rand_num)
{
$num3 = 0;
$rand = $rand_num;
}
static $i = 0; //我定义static 的目的是让它 循环 $k次后,就停止了, $k 是层次。
for($i = 0;$i < $k;$i++) // $k 层次
{
$result = $_SGLOBAL['db']->fetch_one('select level1,level2,level3 from uc_level where uid='.$uid);
if($result)
{
for($y = 0;$y < 3;$y++) //判断 L1,L2,L3 是否为空
{
if($result[$y]) //继续 L -> $y 下层
{
$num3++;
count_this_bl($result[$y],$k,$rand);
}
}
}
}
return $num3;
}函数参数: $uid 父级uid, $k 每层最多次数, $rand_num随机数,防止多次调用时存在静态变量.问题描述: 现在调用 count_this_bl(1308534381,2,mt_rand()); $k=2, 限制不了 2 层, 它还是会继续往下调用函数。.
数据表图:这个问题困扰我两天了. 头痛. 有爱好的研究的请加我QQ 100-9798-715.
count_this_bl($result[$y],$k-1,$rand);
修正:
static $i; //我定义static 的目的是让它 循环 $k次后,就停止了, $k 是层次。
for($i = ;$i < $k;$i++) // $k 层次
修正:
static $i; //我定义static 的目的是让它 循环 $k次后,就停止了, $k 是层次。
for($i = 0;$i < $k;$i++)....count_this_bl($result[$y],$k-1,$rand);