関数sort
とを考えてみましょうarray_reverse
。
1 つは渡された変数を変更するのに、もう 1 つは新しいバージョンを返すのはなぜですか?
$a = array(3, 1, 2);
sort($a);
// $a === array(1, 2, 3)
array_reverse($a);
// $a === array(1, 2, 3)
sort
は、引数の変更されたコピーを返すように簡単に記述できますarray_reverse
。
私が尋ねている理由は、「参照渡しおよび変更」アプローチと「値渡し、変更および戻り」アプローチを使用して関数を作成するかどうかを決定するためのガイドラインがあるかどうかを知りたいからです。