PHPで関数への参照による引数の渡しについて解説しています。
PHPでは関数に引数を渡す場合に、「値で渡す」か「参照で渡す」かの2つがあります。
通常であれば、関数の引数は”値”で渡され、関数内で引数の値が変更した場合でも、関数の外では影響を受けません。引数を変更できるようにする場合は、引数を「参照で渡す」必要があります。
「参照で渡す」場合、関数を定義した際に、引数名の前にアンパサンド,アンド(&)を付けると引数を参照で渡すことができます。
■環境
・Windows10
・WampServer Version 3.2.3 64bit
・PHP Version 7.3.21
■引数を参照で渡す
では、実際に関数に引数を渡す時に、参照で渡す方法をやってみます。
■コード
<?php
function add_sum(&$number){
$number += $number;
return $number;
}
$num = 1;
echo $num."<br>";
add_sum($num);
echo $num."<br>";
?>
今回はadd_sumというユーザー定義関数を作成します。括弧”()”内には、numberという引数の名前を付けて、名前の前にアンパサンド,アンド(&)を付けます。指定後、中括弧”{}”を記述し、その中に実行する処理を記述します。
記述する内容は、引数として渡された値を、演算子”+=”を使用し、numberという変数に格納されている数値をnumberに格納されている数値だけ増加させるというものです。
増加させた後に、numberという変数に再び格納します。
次にadd_sumというユーザー定義関数の外で、numという変数を作成し、その中に数値を格納します。
格納後、add_sumというユーザー定義関数を呼び出して、関数の引数で、numという変数に格納した数値を渡します。
渡した後に、echo文でadd_sumというユーザー定義関数で処理されたnum変数の情報を出力してみます。
■実行
では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。
実行してみると、ユーザー定義関数の外で作成したnum変数の中に格納されている数値を関数に渡し、渡された関数の引数では、アンパサンド,アンド(&)が付いているので、名前の異なる変数を使うことができます。
これにより、num変数の中に格納されている数値が参照され、それを元に関数の中の処理が実行され実行された後の数値が出力されました。
コメント