phpでは変数に別名が付けられないん?
試してみたら、リファレンスでOK.だとわかった。
むしろデフォルトがオブジェクトは非・参照渡しだったり。(コピーオンライト)
<?php class SomeClass { public $bad_name ; } class MyClass extends SomeClass { public $bad_name ; public $better_name; public function __construct(){ $this->better_name =& $this->bad_name;#参照渡しで別名を詰める } } $a = new MyClass(); $a->better_name = "we are the world"; var_dump($a->better_name); var_dump($a->bad_name); #=> "we are the world"; #=> "we are the world";
変数を別名にすることが出来れば、Class設計で汚いものを何とか美しくごまかすことが出来るかもしれない。ただし、なるべくなら、やるべきじゃないわな。。。。
クラス挙動を変えるClassの継承をしたいとき、継承より委譲(Adapter化)をするべきだと思う。