2015-06-11 2 views
1

Это основной пример того, что я пытаюсь выяснить, так что я могу понять, как применять ту же концепцию для других функций ...Foreach цикл внутри функции с наборами двух переменных

Мой вопрос, например, у меня есть функция, которая будет создавать ряд ссылок, которые будут выглядеть примерно так:

function link($link, $title){ 
    echo '<li><a href="'.$link.'">'.$title.'"></li>'; 
} 

И называют это так:

link('page1.html', 'Title 1', 'page2.html', 'Title 2); 

Очевидно, что выход должен быть

<li><a href="page1.html">Title 1</a></li> 
<li><a href="page2.html">Title 2</a></li> 

Я уверен, что Еогеасп участвуют здесь, но снова я здесь задаю вопрос так предполагаю, что я на самом деле не имею понятия. Я знаю, что я мог бы просто позвонить по ссылке() дважды или несколько раз, но, как уже упоминалось, я хочу применить это к другим функциям, это всего лишь базовый пример, о котором я мог думать. Заранее спасибо!

ответ

2

Вы должны использовать func_get_args():

function getlinks(){ 
    $arguments = func_get_args(); 
    $count = count($arguments); 
    for($i = 0; $i < $count; $i+=2) { 
     echo '<li><a href="'.$arguments[$i].'">'.$arguments[$i+1].'</a></li>'; 
    } 
} 

getlinks('page1.html', 'Title 1', 'page2.html', 'Title 2'); 

Это довольно простой пример, вы должны сделать свою проверку, например вы получили четное количество аргументов? В этом случае это может выглядеть так:

if ($count % 2 != 0) { 
     $msg = "Expecting pairs of link/title, received an odd number of arguments."; 
     throw new Exception(__METHOD__ . ': ' . $msg); 
    } 
+0

Великий ответ Макросы. на самом деле я также ищу тот же ответ – Deep

Смежные вопросы