php - 较旧的 PHP 版本修复

标签 php

尝试动态加载一个类:

    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/

相关文章:

phpseclib - 将 mysql 查询解析为数组

PHP $_POST 和 id,没有名字

php - 将编号列表列添加到返回的 MySQL 查询

php - 使用 Zend 框架调用多个存储过程

php - 如何使用 Group By 组合这两个 MySQL 查询

php - 具有定义的日期间隔的 MySQL 查询行

php - 获取 db 中条目的 "nth"出现次数

php - ™ 被转换为 ™ DOMDocument XPath

php - AWS ubuntu lnmp+ wordpress down

php - 无法使用 AFHTTPRequestOperation post 方法将希伯来文文本插入 mysql 数据库