可変数のパラメーターを受け取る関数があり、別の関数を参照してそれらを渡す必要があります。
そのような
function my_function($arg0, $arg1, $arg2, ...)
{
my_other_function(&$arg0, &$arg1, &$arg2, ...);
}
my_function
そのため、参照によって物事を渡すときに、参照my_other_function
によってそれらも取得します。
これを行う方法はありますか?
可変数のパラメーターを受け取る関数があり、別の関数を参照してそれらを渡す必要があります。
そのような
function my_function($arg0, $arg1, $arg2, ...)
{
my_other_function(&$arg0, &$arg1, &$arg2, ...);
}
my_function
そのため、参照によって物事を渡すときに、参照my_other_function
によってそれらも取得します。
これを行う方法はありますか?
なぜこれが必要なのかしら。一般的に、PHPでは参照は良くありません。
本当にこれを実行したい場合(PHP 5.4では機能しなくなった呼び出し時のpass-by-refハックを無視する)は、パラメーターをラップする配列を使用することです。
function myfunc(array $data) {
$data[0] += 42;
/* ... */
}
$var = 0;
myfunc(array(&$var /*, ... */));
echo $var; // prints 42
技術的には、これを行っていません。
function my_function($arg0, $arg1, $arg2, ...)
{
my_other_function(&$arg0, &$arg1, &$arg2, ...);
}
でも、これ:
function my_function(&$arg0, &$arg1, &$arg2, ...)
{
my_other_function($arg0, $arg1, $arg2, ...);
}
ただし、@ johannesがすでに書いているように、PHPで参照される可変数の引数(および誰がよりよく知ることができるか)に対する適切なサポートはありません。たとえば、func_get_args
ドキュメントは参照では機能しません。
代わりに、提案を利用して、配列パラメーターを介してすべての参照を渡します。それはうまくいきます。
function my_function(array $args)
{
my_other_function($args);
}