如何拨打这样的电话:
$instance = new ($b->method($id))();
其中method(int $id): string
返回类名?
上面的构造给我一个语法错误,但这没关系:
$className = $b->method($id);
$instance = new $className();
我只是想知道如果和如何可以完成。
我很惊讶括号不能说括号$b->method($id)
的内容应该先执行,结果字符串用于对象实例化。
我可能不会在生产代码中使用它,但我仍然感兴趣。
答案 0 :(得分:1)
这在PHP上是不可能的,因为'new'需要带字符串的字符串或变量。 ()字符用于aritmethic关联和语言结构上的参数,你不能将调用的结果分配给new。