PHPで値を関数に渡す方法は?
PHPで値渡しではなく参照渡しを行う方法は2種類あり、&記号を使う方法と参照パラメータを使う方法があります。
- 関数定義時に、パラメータの前に&記号をつけると、パラメータが参照渡しであることを表す。例えば、
function increment(&$num) {
$num++;
}
$num = 5;
increment($num);
echo $num; // 输出6
上記の例では、$num変数をパラメーターとしてincrement関数に渡し、関数内で$numを操作しています。引数は参照渡しされているので、関数内の$numの変更は元の$num変数にも影響することがあります。
- パラメータを定義するときは、参照パラメータとしてパラメータを宣言します。たとえば:
function increment($num) {
$num++;
}
$num = 5;
increment(&$num);
echo $num; // 输出6
上記のようなケースでは、変数$num は & 記号を使用して increment 関数の引数に渡されます。関数内での $num の変更は、元となった変数$num にも影響を与えます。
PHP5以降では、参照引数は推奨されなくなった点に注意する必要がある。というのも、PHP5では変数への参照渡しは自動的に処理されるからである。したがって、1つめの方法が&記号を用いている方法が推奨される。