4

可変数の引数を関数に渡して、個別にアクセスできることは知っています。

例えば

function foo()
{
    $arg = func_get_arg(0);
    $arg += 10;
}

$a = 100;

foo($a);

echo "A is $a\n";

ただし、これらの引数は、上で示したように値渡しされます。

bind_parammysqli ライブラリのような関数と同様の方法で参照渡しされたかのように使用することはできますか?

4

2 に答える 2

1

あなたはできません、単にあなたはこれが参照によるものであり、そうではないことをphpに伝えることができません、しかし!次のことをお勧めします:

function foo()
{
    $arg = func_get_arg(0);
    $arg->val += 10;
}
$a =new stdClass();
$a->val = 100;
foo($a);
echo "$a\n"; // 110 

あなたはあなたが望む値にボクシングを適用することができ、それはうまくいきます、あなたがこれが役立つことを願っています、あなたが質問をするならば尋ねてください。

于 2013-03-10T11:45:37.677 に答える
1

最初に言及したいのは、参照を使用しないことです

それはさておき、エンジンは関数を呼び出す前に何かが参照であるかどうかを知る必要があるため、それを直接行うことは不可能です。あなたができることは、参照の配列を渡すことです:

$a = 1; $b = 2; $c = 3;
$parameters = array(&$a, &$b, &$c, /*...*/);
func($parameters);

function func(array $params) {
    $params[0]++;
}
于 2013-03-10T12:08:56.983 に答える