私は関数のために順番に並んでいる引数の配列を持っています。Php |未知の長さの引数の配列を個別に関数に渡す方法
配列内の項目数が異なります。配列の各項目を関数に個別に渡すことができるようにしたいとします(たとえば、func(arg1, arg2, arg3, arg4);
)。配列全体を渡すのとは反対に。
配列の長さはわかりませんが、呼び出す関数によって異なります。 PHPで
私は関数のために順番に並んでいる引数の配列を持っています。Php |未知の長さの引数の配列を個別に関数に渡す方法
配列内の項目数が異なります。配列の各項目を関数に個別に渡すことができるようにしたいとします(たとえば、func(arg1, arg2, arg3, arg4);
)。配列全体を渡すのとは反対に。
配列の長さはわかりませんが、呼び出す関数によって異なります。 PHPで
は、PHP 5.6以降、あなたはあなたがこのようなあなたの関数を呼び出すことができますVariable-length argument listsを持っている:
$arr = array(1, 2, 5, "ten");
、あなたはこのようにそれを呼び出すことによって機能に$arr
ですべての要素を送信することができます:
myFunc(...$arr);
あなたが持っている:その目的のために
。あなたは罰金PHP 5.6を使用している場合、あなたはスプラット演算子を持つ
EDIT。ドキュメント(link)からサンプルを引用:
<?php
function add($a, $b, $c) {
return $a + $b + $c;
}
$operators = [2, 3];
echo add(1, ...$operators);
私は彼の問題は可変サイズの配列の要素を関数に送り、その要素が個々のパラメータとしてそれらの要素を見るようにすることだと思います。 –
おそらくあなたは正しいでしょう。私は答えを編集しました。残念ながら、私は今日あなたの投票を使い果たしたので、私はあなたをアップアップすることはできません;(Perhpasあなたはそれをもっと記述的で明快にするために編集しなければなりません。 –
あなたは、その引数が配列である機能を持っている意味場合は、すべての配列要素を取得するためにforeach
を使用することができます。
function my_func($arg_array)
{
foreach($arg_array as $key=>$value)
{
......
}
....
}
しかし、あなたの場合引数が不明な関数があり、引数を含む配列を配列として返す関数func_get_args
を使用できることを意味します。
function my_func()
{
foreach(func_get_args() as $key=>$value)
{
......
}
....
}
用途:call_user_func_array("functionName", $arrayofArgs);
<?php
function unknown($arg1,$arg2,$arg3){
echo "arg1 = $arg1 <br>";
echo "arg1 = $arg2 <br>";
echo "arg1 = $arg3 <br>";
}
$array = [
"arg1" => "Hi",
"arg2" => "Marhaba",
"arg3" => "Hola",
"arg4" => "foo"
];
call_user_func_array("unknown", $array);
?>
とあなたは[ "クラス名"、 "methodNameの"]
PHPのドキュメントの配列として最初のパラメータを渡すことで、クラスから関数を呼び出すことができます。 http://php.net/manual/en/function.call-user-func-array.php
はあなたが意味ですかPHPのスプラット演算子? – Daan