超过俩小时未解决的递归死循环。。求救
private function countAllChild($tempCount, $mid, $level = 0)
{
// die('死循环阻止');
$tableShopMember = 'ewei_shop_member';
// 根据uid拿到shopmember对象
logging_run($mid . '查找等级:' . $level);
if ($level > 0) {
if ($mid == null) {
return;
}
$sql = 'select id from ' . tablename($tableShopMember) . ' where agentlevel >= ' . $level . ' and agentid = ' . $mid;
$childrenDirect = pdo_fetchall($sql);
} else {
$childrenDirect = pdo_getall($tableShopMember, ['agentid' => $mid], array('id', 'uid'));// 直接下级
}
$childrenDirect ? array_push($this->childrenArray, $childrenDirect) : '';
$countCurr = count($childrenDirect);
if ($countCurr > 0) {
foreach ($childrenDirect as $l) {
$agentId = $l['id'];
// logging_run('传入countAllChild' . $agentId);
$sql = 'select id from ' . tablename($tableShopMember) . ' where agentlevel >= ' . $level . ' and agentid = ' . $agentId;
$childrenDirect1 = pdo_fetchall($sql);
// var_dump($childrenDirect1);
$childrenDirect1 ? array_push($this->childrenArray, $childrenDirect1) : '';
$countCurr1 = count($childrenDirect1);
logging_run($agentId . '的下级数量=' . $countCurr1);
// logging_run($childrenDirect1);
if ($countCurr1 > 0) {
$this->countAllChild($tempCount, $agentId, $level);
}
}
}
}
打扰了。。程序确实没有导致死循环的地方,是因为我数据的上下级关系形成了闭环。。
推荐文章: