以某种方式可以将数组传递给像这个示例函数的函数:
send_mail($adress, $data)
{
return $data[0];
}
输入变量也可以是数组吗?如果是的话,有人能告诉我一个例子吗?
答案 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