それは機能の目的が何であるかに依存します。その明確な目的が入力を変更することである場合は、参照を使用してください。入力に基づいて一部のデータを計算することが目的であり、入力を変更しないことが目的である場合は、必ず通常のを使用してreturn
ください。
たとえばarray_push
:
int array_push(array &$array, mixed $var[, mixed $...])
この関数の明確な目的は、配列を変更することです。元の配列と、プッシュされた値を含むそのコピーの両方が必要になる可能性はほとんどありません。
array_push($array, 42); // most likely use case
// if you really need both versions, just do:
$old = $array;
array_push($array, 42);
参照を取得しなかった場合array_push
は、次のようにする必要があります。
// array_push($array, $var[, $...])
$array = array_push($array, 42); // quite a waste to do this every time
一方、のような純粋な計算関数pow
は、元の値を変更しないでください。
number pow(number $base, number $exp)
この関数は、元の数値をそのまま維持し、それに基づいて結果を計算する場合に使用する可能性が高くなります。この場合pow
、元の番号を変更すると迷惑になります。
$x = 123;
$y = pow($x, 42); // most likely use case
参照を取得した場合pow
は、これを行う必要があります。
// pow(&$base, $exp)
$x = 123;
$y = $x; // nuisance
pow($y, 42);