PHP require_once 没有获取变量

PHP require_once not getting a variable

我正在尝试让 require_once 工作,因此我可以使用我的 bootstrap 文件中的可变内容。我目前有以下文件结构:

(文件夹)库

(文件夹)模板

(文件)bootstrap.php

在我的 bootstrap.php 文件中,我有以下数组:

$config = array(
"db" => array(
    "db" => array(
        "dbname" => "name",
        "username" => "user",
        "password" => "pass",
        "host" => "localhost"
    ),
),
"paths" => array(
    "resources" => "/src",
)
);

在我的 lib 文件夹中有以下 2 个文件:

Database.php User.php

这两个都是类。在我的 User.php 文件中,我想使用 bootstrap.php 文件中定义的数组,所以我正在做

require_once __DIR__ . '/../bootstrap.php';

其中 DIR 是当前文件夹,然后向下一层到 boostrap.php 所在的位置。但是当我拨打以下电话时:

var_dump( $config );

我得到:

Notice: Undefined variable: config in ...\src\lib\User.php on line 37
NULL 

知道我做错了什么吗?

改用include(file.php);include_once(file.php);

不确定,但试试这个。已编辑

require_once('./../bootstrap.php');

require('./../bootstrap.php');

而不是这个

require_once __DIR__ . '/../bootstrap.php';

我不知道在 UNIX 系统上的行为,但在 Windows DIR 上输出某些行 C:\Apache24\htdocs。注意那里的反斜杠。除非您使用 DIR ,否则这不适用于文件名。 "..\libs\User.php"

require 和 require_once 的参数与您的 php 运行时调用的脚本文件有关。因此,如果其他地方需要 User.php(例如您的根目录 index.php),则提供给您的 require 语句的路径需要相对于 index.php,无论您的 require 语句是哪个文件英寸

如果您查看 php 框架如何处理此问题,它们通常会在 bootstrap 序列中设置一些全局 APP_PATH 变量(这是项目的绝对路径磁盘)。

这样一来,无论您需要什么,都可以将路径设为 APP_PATH。