J'ai une fonction pour envoyer du courrier aux utilisateurs et je veux passer un de ses paramètres sous forme de tableau d'identifiants.
Est-ce possible? Si oui, comment peut-on le faire?
Supposons que nous ayons une fonction comme:
function sendemail($id, $userid) {
}
Dans l'exemple, $id
devrait être un tableau.
Vous pouvez passer un tableau en argument. Il est copié par valeur (ou COW'd, ce qui signifie essentiellement la même chose pour vous), de sorte que vous pouvez array_pop()
(et similaire) tout ce que vous aimez et n'affectera rien de l'extérieur.
function sendemail($id, $userid){
// ...
}
sendemail(array('a', 'b', 'c'), 10);
Vous ne pouvez en fait y accepter un tableau qu'en plaçant son type dans la signature d'argument de la fonction ...
function sendemail(array $id, $userid){
// ...
}
Vous pouvez également appeler la fonction avec ses arguments sous forme de tableau ...
call_user_func_array('sendemail', array('argument1', 'argument2'));
Oui, vous pouvez passer un tableau en toute sécurité en tant que paramètre .
Ce qui devrait être clarifié ici.
Passez juste le tableau lorsque vous appelez cette fonction.
function sendemail($id,$userid){
Some Process....
}
$id=array(1,2);
sendmail($id,$userid);
Oui, tu peux faire ça.
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(Array $id,$userid){ // forces $id must be an array
Some Process....
}
$ids = array(121,122,123);
sendmail($ids, $userId);
Ce n'est pas différent d'une autre variable, par exemple.
function sendemail($id,$userid){
echo $arr["foo"];
}
$arr = array("foo" => "bar");
sendemail($arr, $userid);
En php 5, vous pouvez également indiquer le type de la variable transmise:
function sendemail(array $id, $userid){
//function body
}
Voir type allusion .
Puisque PHP est faiblement typé dynamiquement, vous pouvez passer n'importe quelle variable à la fonction, qui tentera de faire de son mieux.
Par conséquent, vous pouvez effectivement passer des tableaux en tant que paramètres.
J'ai composé ce code à titre d'exemple. J'espère que l'idée fonctionne!
<?php
$friends = array('Robert', 'Louis', 'Ferdinand');
function greetings($friends){
echo "Greetings, $friends <br>";
}
foreach ($friends as $friend) {
greetings($friend);
}
?>
Oui, nous pouvons passer des tableaux à une fonction.
$arr = array(“a” => “first”, “b” => “second”, “c” => “third”);
function user_defined($item, $key)
{
echo $key.”-”.$item.”<br/>”;
}
array_walk($arr, ‘user_defined’);
Nous pouvons trouver plus de fonctions de tableau ici
<?php
function takes_array($input)
{
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>
encore plus cool, vous pouvez passer un nombre variable de paramètres à une fonction comme celle-ci:
function sendmail(...$users){
foreach($users as $user){
}
}
sendmail('user1','user2','user3');