簡體   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