OK、これはかなり長い間私の個人的なバグベアでした。クラスがあるとしましょう。
class One {
public $class = 'Two';
public $member = 'member';
}
class Two {
public $member = 'Hey there';
function __construct() {
print 'Created';
}
}
$one = new One();
// case 1: works
$two_class = $one->class;
$two = new $two_class();
// case 2: fails
$two = new {$one->class}();
最初に変数に名前を割り当てずに、クラスメンバーからクラスをインスタンス化する方法はありますか?プロパティから動的にクラスを作成するたびに少し内側で死にます。最初に変数を設定する必要があります。誰かが私に技術的にこれがうまくいかない理由を説明できますか?
print $two->{$one->method}
「Heythere」を喜んで印刷しますか?