我有一个叫做get_header()
的函数,它包含一个模板中的头文件(有点像wordpress),它正在工作。在我的函数文件中还定义了一个stylesheetURL()
函数,它可以获取模板的样式表url。在函数中包含一个文件
在我的header.php文件(在一个子目录“设计”),我打电话stylesheetURL和PHP说它是未定义的。
这是结构:
pagehandler.php - 处理页面请求。包括'load.php'然后'design/page.php'
load.php - 包括'functions.php'和类。
functions.php - 包含像get_header和stylesheetURL这样的过程函数。 get_header实际上在函数内部包含了header.php文件作为绝对url(http://website.com/design/header.php),但是因为函数没有作用域,它仍然应该调用stylesheeturl函数。
page.php - 调用函数get_header()
,回声内容,然后调用get_footer()
。
header.php - 致电stylesheetURL()
。 < <这是它破裂的地方。头文件包含很好,但无法访问任何函数。
这是怎么发生的?
编辑: //设置是一个全局数组,并且如果从header.php或footer.php以外的任何文件中调用,siteURL显示url就好了。
function siteURL() {
global $settings;
return $settings['site_url'];
}
function designURL() {
$siteurl = siteURL();
return $siteurl.'/design';
}
function stylesheetURL() {
$durl = designURL();
return $durl.'/style.css';
}
function get_header() {
$durl = designURL();
require $durl.'/header.php';
}
事实上,如果我改变从get_header()
到include 'header.php'
它按预期工作。
向我们展示功能 – 2012-07-24 10:24:14
您的问题中有很多细节,但不是我们需要帮助解决的问题。为我们粘贴functions.php文件或确保functions.php文件包含在正确的位置,以便可以从“错误页面”访问 – 2012-07-24 10:29:47