好的,这已经是我个人的臭虫已经有一段时间了。说我上课了。
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}();
有没有办法从类memeber实例化一个类而不首先将名称赋给变量?每次我想从属性动态创建一个类时我都死了一点,我必须首先填充一个变量。任何人都可以在技术上向我解释为什么在以下情况下这不起作用:
print $two->{$one->method}
很乐意打印'嘿那里'?
答案 0 :(得分:9)
$two = new $one->class();
演示:http://codepad.org/64iCiWn2
但如果$one->class()
功能正常,你会遇到大麻烦 - 这可能会让人感到困惑,但是如果$two_class
成为功能会发生同样的事情