2015-02-08 90 views
0

我可以加载php函数来调用关联参数吗?事情是这样的:联系人参数PHP调用

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

,并呼吁像这样:

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

); 
+0

与往常一样,RTM:http://php.net/manual/en/functions。 arguments.php – 2015-02-08 20:37:19

回答

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" 
0

您可以使用default argument values

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

如果我已经知道他们的写作功能,为什么我需要让他们参数? – user3581203 2015-02-08 20:39:20

1

不,命名参数目前是不可能的。可以使用关联数组。

+0

*您可以使用关联数组。*您可以给OP一个例子吗? – Rizier123 2015-02-08 20:39:52

+0

@GhostGambler关联数组作为参数的性能的评论? – user3581203 2015-02-08 20:40:06

+0

@ user3581203由于PHP基本上不是针对优化性能,而是在优化代码编写速度方面,我会说可以忽略性能维度。 – GhostGambler 2015-02-08 20:41:43

相关问题