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