PHP常量未定义 - 但它们已定义!

bcm*_*cfc 3 php constants

我正在使用常量在脚本中设置各种配置变量.

INC_PATH常量在包含类库的脚本中定义.

define('INC_PATH',$_SERVER['DOCUMENT_ROOT'].'includes/');
include('class.lib.php');
Run Code Online (Sandbox Code Playgroud)

类库包含各种include('someClass.php')行.它还包含:

require(INC_PATH.'DB.class.php');
Run Code Online (Sandbox Code Playgroud)

类库抛出一个通知:

Use of undefined constant INC_PATH - assumed 'INC_PATH'
Run Code Online (Sandbox Code Playgroud)

类库如何才能看到已定义INC_PATH常量?我认为常数是全局的?

Art*_*cto 8

是的,但必须先定义:

<?php
echo INC_PATH; //undefined
define('INC_PATH', "foo");
echo INC_PATH; //defined
Run Code Online (Sandbox Code Playgroud)

回应你的评论

我不能重现:

a.php只会

<?php
define('INC_PATH',$_SERVER['DOCUMENT_ROOT']."/");
include('b.php.inc');
Run Code Online (Sandbox Code Playgroud)

b.php.inc

<h1><?php require(INC_PATH . "c.php.inc"); ?></h1>
Run Code Online (Sandbox Code Playgroud)

c.php.inc

<?php echo INC_PATH; ?>
Run Code Online (Sandbox Code Playgroud)

要求a.php给出:

<h1>U:/htdocs/</h1>
Run Code Online (Sandbox Code Playgroud)