参照渡しと値渡し
値渡し
関数の引数は、通常は値渡し。関数内での値の変更は、呼び出し元に影響を与えない。
1 2 3 4 5 6 7 8 9 10 11 12 | function adder($val){ $val++; return $val; } $val = 1; echo adder($val)."\n"; echo $val."\n"; 実行結果 2 1 |
参照渡し
関数定義の仮引数に&をつけると参照渡しになり、呼び出し元の変数の値に影響を与える。
1 2 3 4 5 6 7 8 9 10 11 12 | function adder(&$val){ $val++; return $val; } $val = 1; echo adder($val)."\n"; echo $val."\n"; 実行結果 2 2 |