Подтвердить что ты не робот

Можем ли мы передать массив как параметр в любой функции в PHP?

У меня есть функция отправки почты пользователям, и я хочу передать один из ее параметров как массив идентификаторов.

Можно ли это сделать? Если да, как это можно сделать?

Предположим, что мы имеем функцию as:

function sendemail($id, $userid) {

}

В этом примере $id должен быть массивом.

4b9b3361

Ответ 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'));

Ответ 3

Что нужно разъяснить здесь.

Просто передайте массив, когда вы вызываете эту функцию.

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

Ответ 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);

Ответ 5

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


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

Ответ 6

Не отличается от любой другой переменной, например

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

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

Ответ 7

В php 5 вы также можете указать тип передаваемой переменной:

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

См. тип подсказки.

Ответ 8

Поскольку PHP динамически слабо типизирован, вы можете передать любую переменную функции, и функция попытается сделать все возможное с ней.

Следовательно, вы действительно можете передавать массивы в качестве параметров.

Ответ 9

Да, мы можем передать массивы функции.

$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

еще более круто, вы можете передать переменное количество параметров в такую ​​функцию:

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

   }
}

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

Ответ 11

Я написал этот код в качестве примера. Надеюсь, что идея работает!

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

Ответ 12

Конфигурация не требуется, просто передайте массив напрямую, а PHP сделает все остальное:

function sendemail($id, $userid){    
}

sendemail(arr[], 10);

Ответ 13

<?php

function takes_array($input)

{

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

}

?>