タグ

ブックマーク / screw-axis.com (1)

  • [PHP] 配列やオブジェクトの値渡しと参照渡し

    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

    hoppie
    hoppie 2011/09/10
  • 1