【发布时间】:2012-11-22 18:09:32
【问题描述】:
我把下面的函数放在一个类中
我尝试在这个函数内部再次调用它(我在这个函数内部进行了递归调用$this->buildMenu($this->itemId, $menuData);)
只有在没有递归调用的情况下这个函数才有效,否则它不会返回任何值。
// menu builder function, parent_id 0 is the root
function buildMenu($parent_id, $menuData)
{
$this->html = '';
if (isset($menuData['parents'][$parent_id]))
{
if($parent_id=='0') $this->html = '<ul class="menu responsive-menu sf-js-enabled">';
else $this->html = '<ul>';
foreach ($menuData['parents'][$parent_id] as $this->itemId)
{
if($this->itemId=='1'){$this->html .= '<li><a href="'.PATH.'">' . $menuData['items'][$this->itemId]['menu_name'].'</a>';}
else $this->html .= '<li class=""><a href="?action='. md5($menuData['items'][$this->itemId]['menu_link']).'">' . $menuData['items'][$this->itemId]['menu_name'].'</a>';
$this->html .= $this->buildMenu($this->itemId, $menuData);
$this->html .= '</li>';
}
$this->html .= '</ul>';
}
return $this->html;
}
【问题讨论】:
-
看起来
$this->itemId的值根本没有改变