クローンを作るための__cloneってメソッドがあるらしいけど、あんまり調べずに、C#の感覚で使ってたら、全然違ってハマりましたよ、という話。ましたっていうか現在進行形だけど。 <?php $obj2 = clone $obj1; ?> ってやると__cloneなるメソッドが呼ばれるらしいけど、呼ばれる__cloneメソッドは、$obj1ではなく$obj2の__cloneらしい。僕はてっきり$obj1のメソッドが自分のクローンを作って戻り値で渡してるんだと思ってた。例えば、こんな感じ。 <?php class Foo { priate $bar; public __construct() { $this->bar = new Bar(); } // 間違った __clone の実装 public __clone() { $clone = new Foo(); $clone->bar = c