0
我试图创建一个Autoloader类,以便我能够自动加载所有模块。但问题是,我想成立一个全球性的配置文件,后来,只是叫他们都使用:返回字符串并将其作为代码运行
Autoloader::GetGlobals();
到目前为止,我有这3个文件:
的configuration.php
<?php
global $Configuration;
$Configuration['Globals'] = "Core Database Templates Directory Debugger";
?>
Autoloader.Class.php
<?php
require_once('Configuration.php');
private static $Globals = "";
private static $MakeGlobal = "global ";
public static function GetGlobals()
{
$ParsedGlobals = "";
$Globals2String = explode(" ", Autoloader::$Globals);
foreach($Globals2String as $Global)
$Globals[] = "$".$Global;
$DefinedGlobals = count($Globals);
for ($i = 0; $i < $DefinedGlobals; $i++)
{
$LastElement = $DefinedGlobals - 1;
if($i != $LastElement)
$ParsedGlobals .= $Globals[$i].", ";
else
$ParsedGlobals .= $Globals[$i].";";
}
return Autoloader::$MakeGlobal.$ParsedGlobals;
}
?>
我得到正确的输出:
global Core, Database, Templates, Directory, Debugger;
接下来的事情是,我想解释为PHP代码,而不是作为一个字符串,并我不想使用eval()
(因为我读过很多文章,说这是最后使用的功能)。
所以问题是,是否有可能从return
运行这个字符串作为PHP代码,只需简单地将它称为Autoloader::GetGlobals();
?
你这是什么意思就是,“作为PHP代码”?一个字符串是一种PHP代码,你是否想要将其转换为数组? – Dan
我认为他想将它注入到脚本中,并将它解释为php而不是作为变量,但作为关键字 –
所以我想在php中完全按照全局变量运行它,但不是简单的字符串 –