それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

PHPで変数に別名(エイリアス)をつけたい。

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化)をするべきだと思う。