ユーザーにメールを送信する機能があり、そのパラメーターの1つを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,$userid){
Some Process....
}
$id=array(1,2);
sendmail($id,$userid);
はい、できます。
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);
他の変数と違いはありません。
function sendemail($id,$userid){
echo $arr["foo"];
}
$arr = array("foo" => "bar");
sendemail($arr, $userid);
例としてこのコードを作成しました。アイデアがうまくいくことを願っています!
<?php
$friends = array('Robert', 'Louis', 'Ferdinand');
function greetings($friends){
echo "Greetings, $friends <br>";
}
foreach ($friends as $friend) {
greetings($friend);
}
?>
はい、配列を関数に渡すことができます。
$arr = array(“a” => “first”, “b” => “second”, “c” => “third”);
function user_defined($item, $key)
{
echo $key.”-”.$item.”<br/>”;
}
array_walk($arr, ‘user_defined’);
ここでさらに配列関数を見つけることができます
さらにクールなのは、次のような関数にパラメーターの変数カウントを渡すことができることです。
function sendmail(...$users){
foreach($users as $user){
}
}
sendmail('user1','user2','user3');
Php 5では、渡された変数のタイプをヒントにすることもできます。
function sendemail(array $id, $userid){
//function body
}
type hinting を参照してください。
PHPは動的に弱く型付けされているため、関数に任意の変数を渡すことができ、関数はそれを最大限に活用しようとします。
したがって、実際には配列をパラメーターとして渡すことができます。
<?php
function takes_array($input)
{
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>