尝试动态加载一个类:
require_once(PATH_MODULES."/{$module}/{$module}_admin.php");
$admin_class = $module."Admin";
return $admin_class::get_admin($module);
在旧版本的 PHP 上产生此错误:
Parse error: syntax error, unexpected
T_PAAMAYIM_NEKUDOTAYIM in
/home/user/public_html/folder/path/admin/filename.php on line 91
如何更改此代码以适用于旧版本的 PHP?
最佳答案
如您所料,问题是您不能在 PHP < 5.3 中使用动态类名。这就是为什么 ::
在变量之后出乎意料。
我看不出有什么办法可以解决这个问题。你不能这样做:
$admin_class::get_admin($module);
如果这部分总是相同的:
$admin_class = $module."Admin";
return $admin_class::get_admin($module);
当然,您可以(这是一个 hack!)将这些字符串添加到该模块,并填写模块名称。或者为此制作一个单独的文件?
因此,对于模块 "yourModule"
,您将这些行添加到 "/yourModule/yourModule_admin.php"
文件中:
$admin_class = "yourModuleAdmin";
return yourModuleAdmin::get_admin($module);
或者添加一个名为 yourModule_admin.olderversions.php 的单独文件
不太漂亮,我同意。
关于php - 较旧的 PHP 版本修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5669331/