中級 › 配列を別の変数に代入するとコピーされる(参照ではない) › パターン2
配列を別の変数に代入するとコピーされる(参照ではない)
PHPの配列はオブジェクトと違い、代入すると中身がまるごとコピーされます。
1 <?php 2 function sortInPlace(__________) { ^ 3 sort($arr); 4 return $arr; 5 } 6 $original = [5, 3, 4]; 7 $sorted = sortInPlace($original); 8 echo implode(",", $original) . " / " . implode(",", $sorted);
出力: 3,4,5 / 3,4,5期待: 5,3,4 / 3,4,5 (エラーにはなりません)
空欄を埋めて実行を通す
引数を&$arrという参照渡しにすると、関数内のsort()が呼び出し元の$originalまで並べ替えてしまいます。PHPの配列引数は既定で値渡しなので、&を付けなければ元の配列は安全です。
次の問題