[英]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.