0

好吧,这一直是我个人的问题。说我有课。

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}

会高兴地打印“嘿那里”吗?

4

1 回答 1

9
$two = new $one->class();

演示:http ://codepad.org/64iCiWn2

但是如果$one->class()是函数你会遇到大麻烦 - 它可能会令人困惑,但如果$two_class成为函数也会发生同样的事情

于 2012-08-28T13:20:00.637 回答