2009-06-22 72 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,当然。看起来他们做的事情非常相似。

相关问题