可変数の引数を取る PHP 関数があります。
function foo() {
$numargs = func_num_args();
if ($numargs < 3) {
die("expected number of args is 3, not " . $numargs);
}
...
私はこのようにそれを呼び出す場合:
foo(1, 12, 17, 3, 5);
それは問題ありませんが、次のように呼び出すと:
$str = "1, 12, 17, 3, 5";
foo($str);
引数を 1 つだけ渡していると表示されるため、失敗します。関数自体を変更せず、呼び出し規約だけを変更したい場合は、どのような変更を加える必要がありますか。
-- 更新: 爆発呼び出しを保存するために、単純に配列を作成しました。また、この関数はメンバー関数であるため、呼び出し規約が少し異なります。したがって、コードは次のようになります
$list = array();
$list[] = 1;
$list[] = 12;
$list[] = 17;
// etc.
call_user_func_array(array($this, 'foo'), $list);
これは他の誰かに役立つかもしれないと考えました。