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中完全按照全局變量運行它,但不是簡單的字符串 –