我的網頁設計項目中有以下設置(架構)。由於某種原因,這不適用於某種情況。PHP錯誤是說CONSTANT沒有定義,但它已經定義和值是空的?
我index.php頁面與下面的頂部
require_once("includes/init.php");
包括然後在我的init.php我有
require_once('config.php');
require_once('functions.php');
ob_start();
spl_autoload_register('load_api');
$db = new Database();
$db->connect();
在我的配置文件我有以下定義
define('DOC_ROOT', $_SERVER['DOCUMENT_ROOT']."/websitename");
define('CLASS_LIB', DOC_ROOT . "/classes");
而在我的自動加載功能包括包含
function load_api($class){
if(!file_exists(CLASS_LIB."/".$class. '.class.php'))
return false;
require_once(CLASS_LIB."/".$class. '.class.php');
return true;
}
當我在XAMP/xdebugger它的錯誤了
(!) Notice: Use of undefined constant CLASS_LIB - assumed 'CLASS_LIB' in D:\websitename\includes\functions.php on line 7
Call Stack
# Time Memory Function Location
1 0.0009 144128 {main}() ..\index.php:0
2 0.0020 155632 require_once('D:\websitenae\includes\init.php') ..\index.php:2
3 0.0129 400360 spl_autoload_call ('Database') ..\index.php:6
4 0.0129 400408 load_api($class = 'Database') ..\index.php:0
(!) Fatal error: Class 'Database' not found in D:\websitename\includes\init.php on line 6
Call Stack
# Time Memory Function Location
1 0.0009 144128 {main}() ..\index.php:0
2 0.0020 155632 require_once('D:\websitename\includes\init.php') ..\index.php:2
錯誤似乎是沒有檢測CLASS_LIB運行這個設計結構,但我無法弄清楚,爲什麼,因爲它似乎已經正確定義並加載此腳本之前,再加上我沒有看到雙重包含也在代碼中...任何想法是讚賞很多?
將一個調試器語句您的配置文件,不斷的後定義,並確保它在那裏停止,並且常量的值是正確的。無論出於何種原因,都有可能無法達到這一點。 – Erik 2014-09-29 08:13:54
沒有變化,你可以清楚地看到。配置在執行前需要一次並調用。 – mahen3d 2014-09-29 10:38:23
是的,沒有工作,但調試顯示,雖然包含配置文件(要求不提供任何錯誤),但沒有包含定義值的配置中的內容實際上並未執行..即使在配置中簡單的回聲不會得到但是不要在require()中給我一個錯誤... – mahen3d 2014-09-30 02:50:06