我如何在php中结束递归函数后返回值

时间:2018-10-06 12:32:08

标签: 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 );

1 个答案:

答案 0 :(得分:1)

关于我的评论,你应该有:

).

如您所见,您也不需要传递和使用$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; }; 作为函数的参数。

另外,您还应该在最后检查html代码是否有效。因为它不会。