Php 导致网页完全空白的递归函数
我正试图打印一个带有递归函数的菜单。我使用了以下问题中的代码示例: 代码对我来说似乎是正确的,并且语法正确,但结果我得到了一个空白页。没有错误,但是这个php后面的HTML也没有显示。有人有什么想法吗Php 导致网页完全空白的递归函数,php,menu,multidimensional-array,Php,Menu,Multidimensional Array,我正试图打印一个带有递归函数的菜单。我使用了以下问题中的代码示例: 代码对我来说似乎是正确的,并且语法正确,但结果我得到了一个空白页。没有错误,但是这个php后面的HTML也没有显示。有人有什么想法吗 $connect = mysqli_connect($db_host,$db_user,$db_password,$db_database) or die ("Couldn't connect to server: ".mysqli_error()); $query = "SELECT *
$connect = mysqli_connect($db_host,$db_user,$db_password,$db_database)
or die ("Couldn't connect to server: ".mysqli_error());
$query = "SELECT * FROM categories";
$result = mysqli_query($connect,$query)
or die ("Couldn't execute query: ".mysqli_error());
function menuPrint($categories, $parent = 'root', $level = 0)
{
$menuList = '<ul>';
foreach($categories as $index => $category)
{
if($category['Parent'] == $parent)
{
$menuList .= '<li id="'.$category['ID'].'" class="tier'.$level.'">'.$category['Name'];
$check = $this->menuPrint($categories, $category['ID'], $level+1);
if($check != '<ul></ul>')
$menuList .= $check;
$menuList .= '</li>';
}
}
return $menuList . '</ul>';
}
$catgories = array();
while ($row = mysqli_fetch_assoc($result)) {
$categories[] = array(
'ID' => $row['categoryId'],
'Name' => $row['categoryName'],
'Parent' => $row['parentCategory'],
'Disabled' => $row['disabled']
);
}
$menu = $this->menuPrint($categories);
echo $menu;
mysqli_close($connect);
$connect=mysqli\u connect($db\u主机,$db\u用户,$db\u密码,$db\u数据库)
或者死亡(“无法连接到服务器:”.mysqli_error());
$query=“从类别中选择*”;
$result=mysqli\u查询($connect,$query)
或者死亡(“无法执行查询:”.mysqli_error());
函数menuPrint($categories,$parent='root',$level=0)
{
$menuList='';
foreach($index=>$category的类别)
{
如果($category['Parent']==$Parent)
{
$menuList.='- ”.$category['Name'];
$check=$this->menuPrint($categories,$category['ID'],$level+1);
如果($check!=“ul>
”)
$menuList.=$check;
$menuList.='';
}
}
返回$menuList。“”;
}
$catgories=array();
while($row=mysqli\u fetch\u assoc($result)){
$categories[]=数组(
'ID'=>$row['categoryId'],
'Name'=>$row['categoryName'],
'Parent'=>$row['parentCategory'],
'Disabled'=>$row['Disabled']
);
}
$menu=$this->menuPrint($categories);
echo$菜单;
mysqli_close($connect);
您知道问题定位在哪里吗?脚本是否在$menu为空时完成执行?如果您只是删除对menuPrint()
的递归调用,会发生什么情况,那么它能工作吗?此外,您还可以调用以下方法:$this->menuPrint(…)
-这是否在对象中?如果是这样的话,那么函数外的代码是什么?如果没有,为什么要使用$this
?能否发布var\u dump($categories)
?另外,您在一个地方拼错了变量$catgories
,这是原始代码中的错误吗?Jakerella-在尝试收集您所有问题的答案时,我解决了这个问题!$this->
导致问题。我最初修改了上面发布的一篇文章中的一些代码,但没有意识到我已经删除了创建的方法。难怪密码被炸了。没有可调用的方法。我觉得自己很笨。但我真的很高兴你的问题得到了答案。非常感谢。有没有什么方法可以给你带来荣誉?巴尔马-谢谢你!我没有发现拼写错误,这肯定有助于回答问题。当你长时间盯着同一段代码看的时候,一双额外的眼睛是非常有用的。