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