2011-11-07 153 views
1

我有以下代码:将PHP数组传递给函数?

$params = array(
    'api_user' => $user, 
    'api_key' => $pass, 
    'to'  => '[email protected]', 
    'subject' => 'testing from curl', 
    'html'  => 'testing body', 
    'text'  => 'testing body', 
    'from'  => '[email protected]' 
); 

/* Put the below into a function */ 
$request = 'api url goes here'; 
$session = curl_init($request); 
curl_setopt ($session, CURLOPT_POST, true); 
curl_setopt ($session, CURLOPT_POSTFIELDS, $params); 
curl_setopt($session, CURLOPT_HEADER, false); 
curl_setopt($session, CURLOPT_RETURNTRANSFER, true); 
$response = curl_exec($session); 
curl_close($session); 
print_r($response); 
/* Put the above into a function */ 

基本上我想提出的意见之间的上述代码放到一个函数,这样我可以把params,然后执行以下操作:

sendthat($params); 

这只是简单地清理我的页面,并通过函数来​​获取curl请求。

如何将数组传递给函数?

+4

就像你传递任何其他参数/​​值。 –

+0

UH?那么,就像传递一个变量一样... –

+2

你的代码_already_将一个数组传递给一个函数(第二个'curl_setopt'调用)。 – Mat

回答

5
function whatever ($params) { 

    $request = 'api url goes here'; 
    $session = curl_init($request); 
    curl_setopt ($session, CURLOPT_POST, true); 
    curl_setopt ($session, CURLOPT_POSTFIELDS, $params); 
    curl_setopt($session, CURLOPT_HEADER, false); 
    curl_setopt($session, CURLOPT_RETURNTRANSFER, true); 
    $response = curl_exec($session); 
    curl_close($session); 
    print_r($response); 
} 

$params = array(
    'api_user' => $user, 
    'api_key' => $pass, 
    'to'  => '[email protected]', 
    'subject' => 'testing from curl', 
    'html'  => 'testing body', 
    'text'  => 'testing body', 
    'from'  => '[email protected]' 
); 



whatever($params); 

分配给变量的数组与赋予变量的任何其他类型的值没有区别。

+3

谢谢,唯一不讽刺的回复。 – Latox

1
function_name($params); 

和功能

extract($params); 

(做到这一点,只有当你确定你知道你在做什么)