什么$ a = new $ b()在PHP中意味着什么?

时间:2011-08-18 14:44:04

标签: php arrays oop object

虽然我明白了

$a = new b()

将初始化类b的对象,但是

会是什么
$a = new $b()

意思是因为我遇到了一些恰好起作用的代码!

2 个答案:

答案 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()之类的语法来动态引用函数名称或类名。