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 を に変更してテストしてみましたが、まだ何もありません。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 に答える