关联参数调用PHP

时间:2015-02-08 20:34:02

标签: php

我可以加载php函数来调用关联参数吗?像这样:

function foo($id,$name,$address){
}

并且这样打电话:

function foo(
    $address : "45, Baker St. London",
    $id      : "34",
    $name    : "Albert"

);

3 个答案:

答案 0 :(得分:3)

PHP使用默认值来实现您最有可能找到的内容:

function foo ($address="123 Fake Street",$name="John Doe",$id=12345)
{
    return $address.', '.$name.', '.$id;
}

然后你可以做

foo("1 east 1st");// "1 east 1st, John Doe, 12345

为了更直接地回答你的问题,一种方法是使用关联数组。

function foo2 ($args) {
    extract($args);
    return $address.', '.$name.', '.$id;
}

$args=array(
    'address'=>'123 Fake Street',
    'name'=>'John Doe',
    'id'=>12345
)

foo2($args);// "123 Fake Street, John Doe, 12345"

更强大的版本,将为缺失值指定默认值,可能如下所示:

function foo3 ($args) {
    extract($args);
    $address=isset($address) ? $address : "123 Fake Street";
    $name=isset($name) ? $name : "John Doe";
    $id=isset($id) ? $id : 12345;
    return $address.', '.$name.', '.$id;
}

foo3(array('name'=>'Jim Dandy')); //"123 Fake Street, Jim Dandy, 12345"

答案 1 :(得分:1)

不,目前无法命名参数。 They are "planned" for whatever future version.

您可以使用关联数组。

答案 2 :(得分:0)

您可以使用default argument values

function foo($id = "34", $name = "Albert", $address = "45, Baker St. London"){
}