簡體   English   中英

我如何在php中結束遞歸函數后返回值

[英]how i can return a value after end recursive function in php

我需要在循環函數的循環結束后返回$build變量

這是我的代碼:

    $traverse = function ($tree,$build = '') use (&$traverse) {

        foreach ($tree as $key=>$menu) {
            if (count($menu->children) > 0) {
                $build .= "<li ><a href='" . $menu->url . "'>" . $menu->text . "</a><ul>";
                    $traverse( $menu->children,$build);
                $build .= "</ul></li>";
            } else {
                $build .= "<li ><a href='" . $menu->url . "'>" . $menu->text . "</a></li>";
            }
        }
    };


 $traverse($tree );

關於我的評論,你應該有:

$traverse = function ($tree) use (&$traverse) {

    $build = '';
    if (count($menu->children) > 0) {
        $build .= "<li ><a href='" . $menu->url . "'>" . $menu->text . "</a><ul>";
        $build .= $traverse($menu->children);
        $build .= "</ul></li>";
    } else {
        $build .= "<li ><a href='" . $menu->url . "'>" . $menu->text . "</a></li>";
    }

    return $build;
};

如您所見,您也不需要傳遞$build作為函數的參數。

您還應該在末尾檢查html代碼是否有效。 因此不會。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM