【发布时间】:2011-07-24 11:35:22
【问题描述】:
我有一个向用户发送邮件的函数,我想将其中一个参数作为 id 数组传递。
这可能吗?如果可以,怎么做?
假设我们有一个函数:
function sendemail($id, $userid) {
}
在示例中,$id 应该是一个数组。
【问题讨论】:
我有一个向用户发送邮件的函数,我想将其中一个参数作为 id 数组传递。
这可能吗?如果可以,怎么做?
假设我们有一个函数:
function sendemail($id, $userid) {
}
在示例中,$id 应该是一个数组。
【问题讨论】:
您可以将数组作为参数传递。它是按值复制的(或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'));
【讨论】:
【讨论】:
是的,你可以这样做。
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);
【讨论】:
这里应该澄清什么。
调用此函数时只需传递数组。
function sendemail($id,$userid){
Some Process....
}
$id=array(1,2);
sendmail($id,$userid);
【讨论】:
function sendemail(Array $id,$userid){ // forces $id must be an array
Some Process....
}
$ids = array(121,122,123);
sendmail($ids, $userId);
【讨论】:
更酷的是,您可以将可变数量的参数传递给这样的函数:
function sendmail(...$users){
foreach($users as $user){
}
}
sendmail('user1','user2','user3');
【讨论】:
它与任何其他变量没有什么不同,例如
function sendemail($id,$userid){
echo $arr["foo"];
}
$arr = array("foo" => "bar");
sendemail($arr, $userid);
【讨论】:
sendemail(array("foo" => "bar"), ...).
【讨论】:
由于 PHP 是动态弱类型的,你可以将任何变量传递给函数,函数会尽力使用它。
因此,您确实可以将数组作为参数传递。
【讨论】:
是的,我们可以将数组传递给函数。
$arr = array(“a” => “first”, “b” => “second”, “c” => “third”);
function user_defined($item, $key)
{
echo $key.”-”.$item.”<br/>”;
}
array_walk($arr, ‘user_defined’);
我们可以在这里找到更多的数组函数
【讨论】:
我编写了这段代码作为示例。希望这个想法行得通!
<?php
$friends = array('Robert', 'Louis', 'Ferdinand');
function greetings($friends){
echo "Greetings, $friends <br>";
}
foreach ($friends as $friend) {
greetings($friend);
}
?>
【讨论】:
<?php
function takes_array($input)
{
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>
【讨论】: