将数组传递给PHP中的函数?

时间:2013-07-07 17:25:03

标签: php arrays function user-defined-functions

以某种方式可以将数组传递给像这个示例函数的函数:

send_mail($adress, $data)
{
    return $data[0];
}

输入变量也可以是数组吗?如果是的话,有人能告诉我一个例子吗?

4 个答案:

答案 0 :(得分:2)

  

以某种方式可以将数组传递给函数中的函数吗?

是的,将函数传递给send_mail完全没问题。但是你在函数内部进行的[0]访问有点危险:

send_mail($adress, $data)
{
    return $data[0];
}

如果$data是一个空数组怎么办?您应检查第一个元素是否存在(使用(count($data) > 0)或任何其他等效物),然后才能使用它。

在PHP中还有一个名为type hinting的小东西会强制send_mail的用户使用数组变量,否则会触发PHP错误:

send_mail($adress, array $data) { ... }

您应该尽可能使用它,以便拥有更强大的代码。

答案 1 :(得分:1)

不确定这是否是您所询问的内容,但您可以使用以下方法访问所有参数:http://php.net/manual/en/function.func-get-args.php

这样你可以将任意数量的参数传递给你的函数并从func_get_arg中获取它们。

这就是你要问的问题吗?

答案 2 :(得分:1)

将数组传递给函数

function addall($array_var){
<do something using the array $array_var>
}
 $array_var=array(1,2,3,4);

addall($array_var);

从函数

返回数组
    function addall($i,$j,$k,$l){
$array_var=array($i,$j,$k,$l);
return $array_var
}

$array_var=array(1,2,3,4);

addall(1,2,3,4);

P.S:该函数可以包含任何参数,每个参数可以是单个var或数组。

答案 3 :(得分:1)

您可以将数组传递给函数,并从函数返回数组。默认情况下,数组按值传递(标量),这意味着它是数组的副本,并且函数内的更改不会影响原始数组。

在第一个函数调用之后的代码中,不会影响tempArray的内容。在第二个函数调用中,使用&符号(&amp;)通过引用传递,原始数组将被更改。

$tempArray = array();
$tempArray[] = "hello";

function testFn($theArray) {
    $theArray[] = "there";
    return $theArray;
}

$result = testFn($tempArray);
echo print_r($result);    // hello, there
echo print_r($tempArray);    // hello

function testFnRef(&$theArray) {
    $theArray[] = "there";
    return $theArray;
}

$result = testFnRef($tempArray);
echo print_r($result);    // hello, there
echo print_r($tempArray);    // hello, there

function arguments