我正在使用常量在脚本中设置各种配置变量。
INC_PATH常量在包含类库的脚本中定义。
define('INC_PATH',$_SERVER['DOCUMENT_ROOT'].'includes/');
include('class.lib.php');
类库包含各种include('someClass.php')行。它还包含:
require(INC_PATH.'DB.class.php');
类库抛出一个通知:
Use of undefined constant INC_PATH - assumed 'INC_PATH'
类库如何才能看到已定义INC_PATH常量?我认为常数是全局的?
答案 0 :(得分:8)
是的,但必须在之前定义:
<?php
echo INC_PATH; //undefined
define('INC_PATH', "foo");
echo INC_PATH; //defined
我无法重现:
<?php
define('INC_PATH',$_SERVER['DOCUMENT_ROOT']."/");
include('b.php.inc');
<h1><?php require(INC_PATH . "c.php.inc"); ?></h1>
<?php echo INC_PATH; ?>
要求a.php
给出:
<h1>U:/htdocs/</h1>
答案 1 :(得分:-1)
一个疯狂的猜测(虽然值得检查):如果您的行
,可能会出现此通知include('class.lib.php');
在 INC_PATH 常量声明之前被称为。
修改您的类库文件并验证实际包含该文件的人:
throw new Exception('err'); //-- Verify the stack trace !
require(INC_PATH.'DB.class.php');
答案 2 :(得分:-1)
答案 3 :(得分:-1)
答案 4 :(得分:-2)
你确定这确实是问题吗?在访问数组时,如果没有键的引号,则会错误地显示此错误消息:
$array[value]
// instead of:
$array['value']
错误消息中添加的单引号是指标,引号不会添加到常量。