【问题标题】:PHP include works but can not call variables or functions within the included filePHP 包含工作,但不能调用包含文件中的变量或函数
【发布时间】:2018-12-23 08:23:57
【问题描述】:

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

我遇到的问题;

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

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

提前致谢。

【问题讨论】:

标签: php file path include


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您无法通过 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-14
      • 2011-11-28
      • 1970-01-01
      相关资源
      最近更新 更多