PHP包含工作,但不能调用包含文件中的变量或函数



我正在尝试为我的应用程序设置一个结构,以便在不同的页面和子目录中正确地包含脚本

我遇到的问题;

在我的index.php中,我有

define ('BASE_URL', 'http://localhost/cformv2/');
include BASE_URL . 'inc/functions.php';
require BASE_URL . 'inc/db.php';
include BASE_URL . 'inc/auth.php';

在我的函数中。php我有

$hello = 'hi';

当我在索引页面中调用echo $hello;时,它会给我一个通知:;Notice: Undefined variable: hello in如果我在函数页面中回显$hello,则消息将显示在索引页面中。

在尝试修复后,我注意到,如果我将functions.php移到同一目录,并在索引页中使用include ('function.php');echo $hello,它就可以工作了。所以我认为,我使用这个BASE_URL是错误的。

总之,我要做的是能够包含文件,而无需每次手动输入路径,在阅读了几篇文章后,我开始使用DEFINE((;使用此选项;。目前,我所有的工作都在文件夹cformv2中,并在localhost上工作。一旦它完成,它将被上传到我的网络主机。我在这个基本目录(cformv2(下的多个文件夹中有多个文件。

如何定义此文件夹的路径,以便包含其他文件夹中的其他文件?此外,我是如何包含文件而不能调用其中的变量或函数的?

提前谢谢。

您无法打开http://localhost/cformv2/inc/functions.php通过URL
您可以使用BASE_DIR作为

define ('BASE_URL', '/cformv2/');

Include是指包含和评估指定的PHP文件。如果你在本地获取它,它可以像PHP一样处理——如果你通过一个完整的URL获取它,你会得到结果HTML(理论上……你可能只得到一个错误(。不适用于php的完整URL包括

如果您想包含PHP文件,您不应该使用URL。服务器上必须有文件的完整路径,例如:

define ('BASE_DIR', __DIR__);
include BASE_DIR . '/inc/functions.php';

最新更新