木曜日, 6月 07, 2007

反省



思いつきを書く: PHPでの内部変数の扱われ方 - PHP5のオブジェクトコピーでありがちなxxx



PHPの場合一度参照を代入すると、その変数はどうもポインタとして初期化される(フラグ?)ようで、以後その変数に代入した場合は同じポインタを共有する変数がごっそり書き換わるのが普通のようだ、ということを最近気づいた。



本当かよ。



だりいけどソース見るか。



Zendエンジンのソース読めね。



_zval_struct構造体のis_refで切り替えてるのがわかったけど、grepしたら結構いろんなところで設定されてるのでよくわからん。

実際最初に初期化したら何か特別なことをしない限りポインタ扱いであるのは正しいけど、いつ切り替わるかよくわからんのは確かだね。

やっぱりPHPは嫌いだ。





Powered by ScribeFire.