PHP包含作品,但无法在所包含文件中调用变量或函数

时间:2018-07-15 17:57:35

标签: php file path include

我正在尝试为我的应用程序建立一个结构,以在各个页面和子目录中正确包含脚本

我遇到的问题;

在我的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';

在我的functions.php中,我拥有

$hello = 'hi';

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

尝试修复后,我注意到,如果我将functions.php移到同一目录并在索引页面中使用include ('function.php');echo $hello,则它可以正常工作。因此,我想我是错误地使用了这个BASE_URL。

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

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

先谢谢了。

2 个答案:

答案 0 :(得分:0)

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

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

Include旨在包含和评估指定的PHP文件。如果在本地获取它,则可以像PHP一样对其进行处理-如果通过完整的URL获取它,则将得到结果HTML(从理论上讲,您可能只会得到一个错误)。   Full URL not working with php include

答案 1 :(得分:0)

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

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