我有两个类,其中一个是配置类。在这个类中,我有一个名为"theme"的变量。这被称为config::theme。我有另一个类,但我不能确定的名称,因为它的主题依赖。例如,如果PHP站点主题设置为"nebula",我需要访问星云主题,例如:nebula::navigation。我到过的最远的地方是:
public static function nav( ) {
$temp = config::theme;
return eval( $temp . "::navigation" );
}
输出错误:
解析错误:语法错误,出乎意料结束美元C: 网站Dropbox Colzdragon Colzdragon 内部 theme.php (54): eval()'d代码在第一行
有什么办法可以做到吗?谢谢!
您可以使用PHP 5.3完成此操作。参见本手册页的第一个示例:
public static function nav() {
$theme = config::$theme;
return $theme::$navigation;
}
你的代码工作得很好(据我所知)PHP告诉你你错过了一个}
,一个;
或一个引号。
字面意思是:"我已经读到文件的末尾,但是还有未完成的语法业务"
@Sander的答案适用于PHP 5.3。如果您使用旧版本(因为许多便宜的主机似乎还没有5.3),您可以使用constant()
:
constant(get_class($temp)."::navigation");