我试图让require_once工作,所以我可以使用我的bootstrap文件中的变量内容。我目前有以下文件结构:
(文件夹)lib
(文件夹)模板
(file)bootstrap.php
在我的bootstrap.php文件中,我有以下数组:
$config = array(
"db" => array(
"db" => array(
"dbname" => "name",
"username" => "user",
"password" => "pass",
"host" => "localhost"
),
),
"paths" => array(
"resources" => "/src",
)
);
在我的lib文件夹中,我有以下两个文件:
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
对我做错了什么的想法?
答案 0 :(得分:0)
改为使用include(file.php);
或include_once(file.php);
。
答案 1 :(得分:0)
不确定,但试试这个。 EDITED
require('./../bootstrap.php');
或
require_once __DIR__ . '/../bootstrap.php';
而不是
column json
{"size": 120, "family": 5, "colour": 5552, "continent": 2, "animal_name": "Tiger"},
{"size": 200, "family": 5, "colour": 5552, "continent": 2, "animal_name": "Panda"},
{"size": 300, "family": 5, "colour": 5552, "continent": 2, "animal_name": "Lion"}
column name
default_animal
default_animal
default_animal
答案 2 :(得分:0)
我不知道UNIX系统上的行为,但是在Windows DIR 输出C:\ Apache24 \ htdocs行。注意那里的反斜杠。除非你使用 DIR ,否则不能使用文件名。 " .. \库\ user.php的"
答案 3 :(得分:0)
require和require_once的参数是相对于php运行时调用的脚本文件。因此,如果其他地方需要User.php(例如你的root index.php),那么提供给require语句的路径需要相对于index.php,无论你的require语句在哪个文件中。
如果你看一下php框架如何处理这个问题,他们通常会在bootstrap序列中设置一些全局的APP_PATH变量(这是磁盘上项目的绝对路径)。
这样,无论您需要什么东西,都可以将路径基于APP_PATH。