2015-06-11 34 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> 

我相信一個foreach這裏所涉及,但再次我在這裏問這個問題所以想我真的沒有線索。我知道我可以兩次或多次調用link(),但如前所述,我想將其應用於其他函數,這只是我能想到的一個基本示例。提前致謝!

回答

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