PHPの内部では変数をどのように扱っているのか知る

PHPが内部的に変数をどのように保持していて、どのように処理しているのかをこれ以上にないぐらいわかりやすく解説している記事がある。
特にリファレンスがどのように扱われているのかが例を挙げながら詳しく書かれているので、(PHPが好きか嫌いかはさておき)PHPでコードを書くことがある人は目を通しておくべき。
いつの頃からか「パフォーマンス向上のためにリファレンスを使うのはよくない」というフレーズを聞くようになったが、その理由がよくわかる。


たぶん、「俺はちゃんとわかって使ってる」と思ってる人ほど読んだほうがいいと思う。
わざわざリファレンスにしなくても最適化してくれるので普通に使いなさいと言ってるのではなくて、リファレンスにすると返って無駄が生じるというケースが一発でわかる。
なるほどこういう実装なら、値を本当に共有したい時*1以外はリファレンスは不要そうだ。


ここでかいつまんで紹介するのが難しいぐらい綺麗にまとまっているので、下記の2つを見に行くべし。

*1:あとは関数の引数を書き換えたりfind系の戻り値とか