【发布时间】:2018-02-23 06:21:10
【问题描述】:
我有四个 PHP 文件,它们将为我的网站构成一个简单的模板:
- functions.php(包含网站的所有主要功能 - 巨大的文件)
- index.php(我将使用的主模板文件,它将把其他三个文件放在一起)
- header.php(网站标题)
- footer.php(网站的页脚 - 这是出现问题的地方)
functions.php - 一个 sn-p。这个函数只是独立的,而不是在一个类或任何东西里面。
<?php
function LandingPageURL($Phrase, $LPID){
$LandingPageURL = "https://www.website.com/" . trim(strtolower(str_replace("d'","",str_replace(" ", "-", $Phrase)))) . "-" . trim($LPID) . "/";
}
?>
header.php - 没有相关部分。但是,我可以从这里很好地使用 functions.php 文件中的函数。
footer.php - 包括相关部分。第 27 行出现错误。
echo '<li><a href="' . LandingPageURL($ar_CHANNELS[$ar_CHANNELS_POS][$v_CH_PHRASE],$ar_CHANNELS[$ar_CHANNELS_POS][$v_CH_LPID])
$ar_CHANNELS* 变量只是我拥有的数组中的值。
index.php - 包括相关部分。
这包含在文件的顶部:
<?php
require ($_SERVER['DOCUMENT_ROOT'] . "/" . "resources/nw/lib/includes/functions.php");
?>
这绝对有效,因为我从functions.php 调用其他变量,这是成功的。
在文件的下方,我首先包含 header.php 文件,然后以相同的方式包含 footer.php 文件:
require ($_SERVER['DOCUMENT_ROOT'] . "/" . "page/page-elements/header.php");
require ($_SERVER['DOCUMENT_ROOT'] . "/" . "page/page-elements/footer.php");
当包含 footer.php 并加载网页时,我收到错误消息:
致命错误:在第 27 行调用 C:\Hosting\website\httpdocs\page\page-elements\footer.php 中未定义的函数 LandingPageURL()
是我做错了什么,从包含在我的主 index.php 文件中的另一个文件调用函数吗?我确保使用'require',这样我就知道functions.php被拉入index.php。
【问题讨论】:
-
@Error404 - 我没有包括在内,因为它不相关,并且不想让帖子变得比现在大footer.php 文件包含在 index.php 文件中,该文件已经包含了 functions.php。如果我将functions.php添加到footer.php,它会抛出一个关于已经声明的函数的错误。@Cawley 您能否创建一个最小的、完整的可验证示例,在该示例中发生错误?删除所有不相关的代码,或创建 3 个包含仅包含打印语句的函数的文件