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

2022-08-30 11:51:08

我有一个向用户发送邮件的函数,我想将其参数之一作为id数组传递。

这可以做到吗?如果是,如何做到?

假设我们有一个函数:

function sendemail($id, $userid) {

}

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


答案 1

可以将数组作为参数传递。它是按价值复制的(或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'));

答案 2

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

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

   }
}

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