2015-02-08 50 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

相關問題