在函数内重用相同的函数

时间:2011-12-03 16:29:28

标签: php

我一直在考虑使用PHP创建动态嵌套

    导航的最佳方法,即使用在同一函数中调用的函数来生成不同的导航级别。 p>

    我有一个由3个字段组成的数据库:

  • page - 用作导航项的唯一标识符
  • title - 用于存储导航项的标题。
  • owner - 用于存储与此页面关联的页面。 (父页面)

我正在努力使跟随的菜单动态

<ul>
    <li><a href="#">Menu 1</a>
        <ul>
            <li><a href="#">Sub Menu 1</a></li>
            <li><a href="#">Sub Menu 2</a></li>
            <li><a href="#">Sub Menu 3</a></li>
            <li><a href="#">Sub Menu 4</a>
                <ul>
                    <li><a href="#">Sub Menu 1 of Sub Menu 4</li>
                    <li><a href="#">Sub Menu 2 of Sub Menu 4</li>
                    <li><a href="#">Sub Menu 3 of Sub Menu 4</li>
                </ul>
            </li>
        </ul>
    </li>
    <li><a href="#">Menu 2</a></li>
</ul>

我遇到了问题,因为页面在同一个函数内再次调用函数时崩溃,因为它创建了一个连续的循环。我该如何防止这种情况发生?

谢谢!

1 个答案:

答案 0 :(得分:0)

一个函数可以简单地按名称调用它自己。

例如:(这是我的一个班级的实际方法)

protected function getParentName( $pid ) {

        foreach( $this->input as $a ) {
            if( $pid == $a['id'] ) {
                $this->bc = '<a href="/category/' . $a['id'] . '">' . $a['name'] . '</a> >> ' . $this->bc;
                if( !empty( $a['i_parent'] ) ) {
                    $this->getParentName( $a['i_parent'] );
                }
            }
        }
    }