我们可以在PHP的任何函数中传递数组作为参数吗?

时间:2011-03-28 13:06:04

标签: php arrays function

我有一个向用户发送邮件的功能,我希望将其中一个参数作为ID数组传递。

这可能吗?如果是的话,怎么办呢?

假设我们有一个函数:

function sendemail($id, $userid) {

}

在示例中,$id应该是一个数组。

12 个答案:

答案 0 :(得分:40)

您可以将数组作为参数传递。它是按值(或COW'd,复制的,这对你来说基本上是相同的),所以你可以array_pop()(和类似)你喜欢它,不会影响任何外面的东西。

function sendemail($id, $userid){
    // ...
}

sendemail(array('a', 'b', 'c'), 10);

事实上,您只能通过将其类型放在函数的参数签名中来接受数组...

function sendemail(array $id, $userid){
    // ...
}

您也可以使用其参数作为数组调用该函数...

call_user_func_array('sendemail', array('argument1', 'argument2'));

答案 1 :(得分:6)

答案 2 :(得分:4)

这里应该澄清什么。

调用此函数时,只需传递数组即可。

function sendemail($id,$userid){
Some Process....
}
$id=array(1,2);
sendmail($id,$userid);

答案 3 :(得分:4)

是的,你可以这样做。

function sendemail($id_list,$userid){
    foreach($id_list as $id) {
        printf("$id\n"); // Will run twice, once outputting id1, then id2
    }
}

$idl = Array("id1", "id2");
$uid = "userID";
sendemail($idl, $uid);

答案 4 :(得分:3)

function sendemail(Array $id,$userid){  // forces $id must be an array
Some Process....
}


$ids  = array(121,122,123);
sendmail($ids, $userId);

答案 5 :(得分:2)

它与任何其他变量没有区别,例如

function sendemail($id,$userid){
  echo $arr["foo"]; 
}

$arr = array("foo" => "bar");
sendemail($arr, $userid);

答案 6 :(得分:1)

在php 5中,您还可以提示传递的变量的类型:

function sendemail(array $id, $userid){
  //function body
}

请参阅type hinting

答案 7 :(得分:1)

由于PHP是动态弱类型的,因此您可以将任何变量传递给函数,函数将尝试使用它。

因此,您确实可以将数组作为参数传递。

答案 8 :(得分:1)

更酷,您可以将可变参数计数传递给这样的函数:

function sendmail(...$users){
   foreach($users as $user){

   }
}

sendmail('user1','user2','user3');

答案 9 :(得分:0)

是的,我们可以将数组传递给函数。

$arr = array(“a” => “first”, “b” => “second”, “c” => “third”);

function user_defined($item, $key)
{
    echo $key.”-”.$item.”<br/>”;
} 

array_walk($arr, ‘user_defined’);

我们可以在这里找到更多的数组函数

http://skillrow.com/array-functions-in-php-part1/

答案 10 :(得分:0)

<?php

function takes_array($input)

{

    echo "$input[0] + $input[1] = ", $input[0]+$input[1];

}

?>

答案 11 :(得分:0)

我以这段代码为例。希望这个想法行得通!

<?php
$friends = array('Robert', 'Louis', 'Ferdinand');
  function greetings($friends){
    echo "Greetings, $friends <br>";
  }
  foreach ($friends as $friend) {
  greetings($friend);
  }
?>