4から5への書き換え
ハマった。
<?php
class ClassA{}
class ClassB{}
$classes = array('ClassA', 'ClassB');
foreach ($classes as $name){
$class = new $name;
$temp[$name] = & $class;
}
var_dump($temp);
?>
こうすると両方ともClassBになってしまう。
$class = & new $name; にすれば大丈夫。
よく考えたら当然なんだけど、newしてるのが別のファイルだったり、コンポーネントでソースファイルを行ったり来たりしてて分からなかった。
取り敢えず今までのソースのオブジェクトに対する&は全部取り去る方向にするけど、削除し忘れると変なところでエラーになって非常に分かりづらい。