我有一个函数get_header()
,它在模板中包含头文件(有点像 wordpress),它正在工作。在我的函数文件中还定义了一个stylesheetURL()
获取模板样式表 url 的函数。
在我的 header.php 文件中(在子目录“design”中),我调用 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'
它会按预期工作。