这是我的功能:
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';
进行测试,但仍然没有。
有什么想法吗?
答案 0 :(得分:10)
乍一看,我想
loop($result['parent_id']);
应该是
return loop($result['parent_id']);
否则你的if
分支什么也没有返回。