怎么做$ class :: function($ data);

我有几个具有相同功能的类,根据不同的变量在不同的时间调用, 所以我需要的是类似的东西
$class = 'test';
$return = $class::do_something();
但我得到Parse错误:解析错误,意外t_paamayim_nekudotayim。 从它的外观来看意味着意外的::。 更新: 另外,为什么直接这样做可以在我的本地主机上工作,但不能在我的prod服务器上工作?是否有php_ini设置?     
已邀请:
您需要使用一个名为
call_user_func
的特殊函数来动态调用类函数。 像这样:
call_user_func($class . '::do_something');
对于带参数的函数,您需要使用
call_user_func_array
call_user_func_array($class . '::do_something', array($data));
为了回答你的第二个问题,只在PHP 5.3.0中添加了在变量类名上调用静态方法的能力,这就是为什么你的代码在一台服务器上工作而在另一台服务器上抛出错误的原因。     

要回复问题请先登录注册