如何创建返回方法名称的新实例?不幸的是我收到了这个错误:
错误:类名必须是有效对象或字符串
这是我的代码:
class Foo {
public function selClass(){
return 'Home()';
}
}
$foo = new Foo();
$bar = new $foo->selClass();
答案 0 :(得分:9)
按照您的示例,此处为龙:
$bar = new ${!${''}=substr($foo->selClass(), 0, -2)};
如果您在代码中使用此功能,则可以在Google上找到工作。
答案 1 :(得分:4)
听起来你正在寻找这样的东西:
class Home {
public function run(){
return 'hello world';
}
}
class Foo {
public function selClass(){
return 'Home';
}
}
$foo = new Foo();
$barClass = $foo->selClass();
$bar = new $barClass;
echo $bar->run(); // hello world
请注意,您在selClass
中指定的类的名称必须单独出现,不带括号,并且$barClass
后面的括号是可选的。
答案 2 :(得分:1)
使用" Home"没有牙套。如果仍然无效,请尝试将其保存到变量,然后调用new $var
。