繁体   English   中英

PHP require_once没有得到变量

[英]PHP require_once not getting a variable

我试图让require_once工作,所以我可以使用我的bootstrap文件中的变量内容。 我目前有以下文件结构:

(文件夹)lib

(文件夹)模板

(文件)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); 代替。

不确定,但试试这个。 EDITED

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

要么

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

而不是这个

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

我不知道UNIX系统上的行为,但在Windows DIR输出行C:\\ Apache24 \\ htdocs。 注意那里的反斜杠。 除非你使用DIR,否则不能使用文件名。 “.. \\库\\ user.php的”

require和require_once的参数是相对于php运行时调用的脚本文件。 因此,如果在别处需要User.php(例如,通过root index.php),则无论require语句位于哪个文件中,提供给require语句的路径都需要相对于index.php。

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

这样,无论您需要什么东西,都可以将路径基于APP_PATH。

暂无
暂无

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

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