虽然我明白了
$a = new b()
将初始化类b的对象,但是
会是什么$a = new $b()
意思是因为我遇到了一些恰好起作用的代码!
答案 0 :(得分:6)
这是对类的反身引用,其名称与$b
的值相匹配。
示例:
$foo = "Bar";
class Bar
{
...code...
}
$baz = new $foo();
//$baz is a new Bar
更新只是为了支持:您也可以通过这种方式调用函数:
function test(){
echo 123;
}
$a = "test";
$a(); //123 printed
答案 1 :(得分:1)
此代码:
$b = "Foo";
$a = new $b();
等同于以下内容:
$a = new Foo();
意味着您可以使用$b()
之类的语法来动态引用函数名称或类名。