PHPでの関数への値渡し/参照渡しは、C言語などのそれと基本的には同様ですが、若干の高級言語らしいトリックが含まれています。 少し前ですが、新たにジョインしたメンバーT君(PHPは初心者)が、レスポンスを気にして参照渡しを多用してくれていたので、ちょっと説明。 値渡しでも、ポインタが渡される T君は、関数に大きな配列を渡す際に参照渡しにしてくれていました。 メモリコピーのオーバーヘッドを無くすためです。 function get_value(array &$a){ return $a[0]; } $a = get_big_array(); $v = get_value($a); こういった意識・心がけは非常に良いことなのですが、実はPHPにおいて、このケースは値渡しでも参照渡しでも同じ挙動をします。 確認してみましょう。 function byVal(array $a){ echo mem