PHPでハマった話(オブジェクト編)
PHPでハマった話(オブジェクト編)
PHPでコードを書いててハマるのはPerlを使ってるからとは限らない。
フツーに
$foo = new Foo; $foo->set_var( 1 ); $bar = $foo; $bar->set_var( 2 ); echo $foo->get_var(); echo $bar->get_var();
――とかやった時に違う値が返って来たときには死ぬかと思った。
まあ上記のようなケースは稀だと思うけれど、
function my_func( $foo ) { $foo->set_var( 3 ); } $foo = new Foo; my_func( $foo ); echo $foo->get_var(); // あれ、3出力されないぞ?
――とかは普通にやってて、しばらく悩んだ覚えがあります。
(あとはforeachでオブジェクトを操作した時とか)
……PHP5では修正されてるんだっけ?
変更すると互換性で大変なことになりそうだけど。