我的项目使用模板系统将页面放在一起,涉及许多变量。通常,模板直接从索引文件加载,而不是从函数中加载。
但是,目前我只是让这个功能显示错误页面:
function show_error($error){
global $root;
global $template;
$content=$root."/includes/pages/error_page.html.php";
include $root . $template;
exit();
}
但是,由于模板使用了许多超出此函数范围的变量,因此它只会出现大量未找到的变量错误。
有没有办法简单地在函数内部提供所有全局变量?我宁愿不单独声明所有可能的变量,因为它会非常繁琐,因为我经常在模板中添加更多变量。
答案 0 :(得分:1)
您可以使用extract()
将所有全局变量导入功能范围
$foo = 'bar'; // global scope
function test(){
extract($GLOBALS, EXTR_OVERWRITE, 'g'); // import with prefix to avoid mess
echo $g_foo; // outputs: bar
}
答案 1 :(得分:0)
如果$ content和$ root在全局上下文中,您可以在使用函数之前将其添加到函数中来访问它们:
global $content, $root;