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

Man*_*anu 6 php arrays oop object

虽然我明白了

$a = new b()
Run Code Online (Sandbox Code Playgroud)

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

$a = new $b()
Run Code Online (Sandbox Code Playgroud)

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

zzz*_*Bov 6

它是对类的反身引用,其名称与值相匹配$b.

例:

$foo = "Bar";

class Bar
{
   ...code...
}

$baz = new $foo();

//$baz is a new Bar
Run Code Online (Sandbox Code Playgroud)

更新只是为了支持:您也可以这样调用函数:

function test(){
    echo 123;
}
$a = "test";
$a(); //123 printed
Run Code Online (Sandbox Code Playgroud)