コンストラクタの挙動
コンストラクタ内部で参照は意図しない働きをすることについて。
http://www.php.net/manual/ja/language.oop.newref.php
コンストラクタの戻り値がコピーだから参照が成り立たないんだから,専用のfactoryメソッドを用意して,new命令でインスタンスを作らないという規約で対応すればいいと思った。
factoryメソッドの中でglobal変数に参照を登録してしまって,ユーティリティ関数からその値を操作するようにすれば,いけるのではないかと思う。
function &newCTRL($controller_name) { $controller =& ('Controller_' . $controller_name)::factory(); return $controller; } $controller =& newCTRL('sample'); My('name')->C2('fullkana'); if (My('name')->is('maxlength', 4) === false) { My('name')->set('hoge'); } $hoge = My('name')->get();