1

有谁知道如何将此代码转换为与 PHP 5.2 兼容?

$myClass = 'ValidClassName';
$instance = $myClass::factory(array('arg' => 'value));

我知道在 PHP 5.3

从 PHP 5.3.0 开始,可以使用变量来引用类。变量的值不能是关键字(例如 self、parent 和 static)。

不知不觉中,我正在使用它。然后在 Php 5.2 环境中,我得到了错误

解析错误:语法错误,意外的 T_PAAMAYIM_NEKUDOTAYIM

所以我试图弄清楚如何将该代码转换为至少向后兼容 5.2 的东西。

4

2 回答 2

6

只需用箭头引用类函数:

$className = 'ValidClassName';

$myClass = new $className();

$instance = $myClass -> factory(array('arg' => 'value));
于 2012-09-11T00:35:51.843 回答
1

根据以下文件call_user_func()

从 5.2.3 开始:

$instance = call_user_func($myClass.'::factory', array('arg' => 'value'));

我认为这适用于 5.2.0:

$instance = call_user_func(array($myClass, 'factory'), array('arg' => 'value'));
于 2012-09-11T02:46:57.573 回答