0

这是我的功能:

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']echoreturn 'foo';

有任何想法吗?

4

1 回答 1

10

乍一看,我认为

loop($result['parent_id']);

应该

return loop($result['parent_id']);

否则你的if分支什么也没有返回。

于 2011-02-10T21:21:35.563 回答