递归 PHP 函数不返回结果
这是我的功能:
function loop($id) {
unset($result, $sql, $query);
$sql = " SELECT parent_id FROM page_entries WHERE id = '$id' ";
$query = mysql_query($sql) or die(mysql_error());
$result = mysql_fetch_assoc($query) or die(mysql_error());
if ($result['parent_id'] != 0) {
echo $result['parent_id'] . "... looping<br>";
loop($result['parent_id']);
} else {
echo $result['parent_id'] . "... done loop";
return $result['parent_id'];
}
}
echo loop('2');
我正在回显 Parent_id 进行测试。这是浏览器的输出:
1...循环
0...完成循环
我不确定的地方:echo Loop('2')
不回显 return $result['id'] 中的任何内容
如果我注释掉函数中的 echo
行。我尝试通过将返回更改为 return 'foo';
进行测试,但仍然没有任何结果。
我该如何修复它?
Here is my function:
function loop($id) {
unset($result, $sql, $query);
$sql = " SELECT parent_id FROM page_entries WHERE id = '$id' ";
$query = mysql_query($sql) or die(mysql_error());
$result = mysql_fetch_assoc($query) or die(mysql_error());
if ($result['parent_id'] != 0) {
echo $result['parent_id'] . "... looping<br>";
loop($result['parent_id']);
} else {
echo $result['parent_id'] . "... done loop";
return $result['parent_id'];
}
}
echo loop('2');
I'm echoing the parent_id for testing. This is what is output to the browser:
1... looping
0... done loop
Where I'm not sure: the echo loop('2')
doesn't echo anything from return $result['id']
if I comment out the echo
lines in the function. I've tried testing by changing the return to return 'foo';
and still nothing.
How can I fix it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
乍一看,我认为
应该是
这样,否则你的
if
分支不会返回任何内容。At a glance, I think
should be
otherwise your
if
branch is returning nothing.