好吧,这已经是我个人困扰了很长一段时间了。说我有课。
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}
会高兴地印上"嘿"吗?
$two = new $one->class();
演示:http://codepad.org/64iCiWn2
但是,如果$one->class()
是函数,你会遇到大麻烦——这可能会令人困惑,但如果$two_class
变成函数