2009-06-22 71 views
2

傳遞變量到功能,我這樣做(其他人,我敢肯定):如何在PHP中創建類似WordPress的函數?

function addNums($num1, $num2) 
{ 
    $num1 + $num2; 
} 

addNums(2, 2); 

我的問題是如何將構建一個功能,像WordPress的:

wp_list_categories('title_li='); 

基本上我正在尋找一種方法來在我的函數中創建一個鍵/值對。 任何意見表示讚賞。

+0

你在找什麼像「return $ array [$ param1] = $ param2;」?對不起,不是一個WordPress的專家..順便說一句。我會建議給每個參數一個不同的名字! – merkuro 2009-06-22 22:57:34

+0

我不知道addNums示例是否可以正常工作... – alex 2009-06-22 22:58:11

回答

2

您可以使用parse_str解析爲參數的字符串。棘手的是,你可能不想讓任何和所有參數都通過。所以這裏是一個只允許某些參數在傳入時使用的示例。

在以下示例中,僅限於foobarvalid將被允許。

function exampleParseArgs($arg_string) { 
    // for every valid argument, include in 
    // this array with "true" as a value 
    $valid_arguments = array(
     'foo' => true, 
     'bar' => true, 
     'valid' = true, 
    ); 
    // parse the string 
    parse_str($arg_string, $parse_into); 
    // return only the valid arguments 
    return array_intersect_key($parse_into,$valid_arguments); 

} 

baz將被丟棄,因爲它不是在$valid_arguments上市。因此,對於這個調用:

print_r(exampleParseArgs('foo=20&bar=strike&baz=50')); 

結果:

Array 
(
    [foo] => 20 
    [bar] => strike 
) 

此外,還可以通過從wordpress.org下載它瀏覽WordPress的Source code here,當然。看起來他們做的事情非常相似。

相關問題