динамическая функция php для списка - PullRequest
0 голосов
/ 01 марта 2012

Я пытаюсь создать динамическую функцию, в которой пользователь может создать список без добавления тега <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');

Но он входит в бесконечный цикл с ошибкой. Я хочу автоматически генерировать <li> после каждой ',' запятой. Также, если возможно, я хочу привязать ссылку в списке, чтобы она могла быть связана со страницей.

Ответы [ 2 ]

0 голосов
/ 01 марта 2012

Да, использование foreach может быть круто, но ваша ошибка в вашем логическом представлении.Если я посмотрю на ваш алгоритм, я увижу: напишите несколько открытых тегов, сохраните мой аргумент в новой переменной с именем $ menuitem, создайте массив из $ menuitem каждый раз, когда вы найдете «,», и сохраните его в $ кусках, сохраните мой аргумент в новой переменнойтеперь он называется $ i, в то время как $ i равен char "," (что всегда ложно), после чего пишу мои subtags

, после чего пишем конечные теги.

Вы не обрабатываете свой массив.Цикл foreach сделает это.Но чтобы исправить ваш код, вы должны понимать, что $ i должен принимать в качестве значения индексы массива, поэтому 0,1,2,3 ...

0 голосов
/ 01 марта 2012

Вместо while, используйте foreach:

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