递归php函数不返回结果

jay*_*jay 0 php function nested-loops

这是我的功能:

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');
Run Code Online (Sandbox Code Playgroud)

我正在回应parent_id进行测试.这是输出到浏览器的内容:

1 ...循环

0 ...完成循环

在我不确定发生了什么的情况下echo loop('2'),return $result['id']如果我注释掉echo函数中的行,则不会回应任何内容.我已经尝试通过改变返回来测试,但return 'foo';仍然没有.

有任何想法吗?

Mik*_*kel 10

我想,一目了然

loop($result['parent_id']);
Run Code Online (Sandbox Code Playgroud)

应该

return loop($result['parent_id']);
Run Code Online (Sandbox Code Playgroud)

否则你的if分支什么都没有返回.