繁体   English   中英

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

[英]PHP include works but can not call variables or functions within the included file

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

我遇到的问题;

在我的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)下的多个文件夹中有多个文件。

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

提前致谢。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM