这是一个我认为的语法问题...我有一个类名数组,我在工厂中使用它来按对象类型代码生成对象:
$array = ['a' => '\namespace\AClass', 'b' => '\namespace\BClass'];
我可以从字符串名称中实例化这些类:
$classname = $array['a'];
return new $classname($arg1, $arg2);
我想要做的是调用数组或字符串中指定的类的静态方法,而不必初始化对象 - 如下所示:
$classname = $array['a'];
return $classname::formatArg($arg1);
显然,这不起作用,因为$ classname是一个字符串,所以如何告诉PHP我试图访问具有该名称的对象?
1 回答
看看这篇文章 . How can I call a static method on a variable class?
看起来你的代码在php 5.3中没问题 . 如果你<5.3,还有一些想法如何处理你的问题 .