【问题标题】:php dynamic function for list列表的php动态函数
【发布时间】:2012-03-19 23:00:43
【问题描述】:

我正在尝试制作动态功能,用户可以在不添加<ul> <li> 标签的情况下创建列表。

这是我的功能

function the_main_nav($navlinks){
        echo '<nav>';
        echo '<ul>';

        $menuitem = $navlinks;
        $pieces = explode(",",$menuitem);

        $i=$navlinks;
        while($i==','){ 
            echo '<li>' . $pieces[$i] . '</li>';
            $i++;
        }

        echo '</ul>';
        echo '</nav>';      
    }

这是我的模板标签the_main_nav('1,2,3,44 5');

但它会进入无限循环并出现错误。我想在每个',' 逗号之后自动生成&lt;li&gt;。另外,如果可能的话,我希望列表中的锚链接可以与页面链接。

【问题讨论】:

    标签: php function loops while-loop explode


    【解决方案1】:

    不要使用while循环,而是使用foreach

    foreach ( $pieces as $piece ) {
      echo '<li>' . $piece . '</li>';
    }
    

    【讨论】:

    • 谢谢,单行意味着很多... :) 我可以为每个 li 添加链接吗?
    • 没问题,你可以把你需要的东西都放进去echo
    • 是的,我现在知道,但我希望每个列表 li 都有不同的 url。我该怎么做?
    • 什么网址?您想为他们设置什么模式?
    • 我想添加
    【解决方案2】:

    是的,使用 foreach 可能很酷,但是您的错误在您的逻辑视图中。 如果我查看您的算法,我会看到: 写一些开放标签 将我的参数存储到一个名为 $menuitem 的新变量中 每次找到“,”时从 $menuitem 创建一个数组并将其存储在 $pieces 将我的参数存储到一个名为 $i 的新变量中 现在 $i 等于 char "," (这总是错误的)写我的子标签

    然后写结束标签。

    你没有处理你的数组。 foreach 循环会做到这一点。但是要更正您的代码,您必须了解 $i 必须将数组的索引作为值,因此 0,1,2,3...

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签