【问题标题】:PHP CLI and ConstantsPHP CLI 和常量
【发布时间】:2013-07-05 06:20:35
【问题描述】:
我的代码有什么问题:
if(!defined(FILE_ROOT_PATH)){
define('FILE_ROOT_PATH', $_SERVER['DOCUMENT_ROOT']);
}
echo 'Path: '.FILE_ROOT_PATH;
当从 CLI 运行时,它会给出:
使用未定义的常量 FILE_ROOT_PATH - 在...中假定为“FILE_ROOT_PATH”
我不能在 CLI 上使用常量吗?
【问题讨论】:
标签:
php
constants
command-line-interface
【解决方案1】:
你需要引用你传递给defined()的字符串。
if(!defined('FILE_ROOT_PATH')){
define('FILE_ROOT_PATH', $_SERVER['DOCUMENT_ROOT']);
}
echo 'Path: '.FILE_ROOT_PATH;
否则,您会尝试在常量存在之前对其进行引用。
【解决方案2】:
if(!defined('FILE_ROOT_PATH')){
define('FILE_ROOT_PATH', $_SERVER['DOCUMENT_ROOT']);
}
echo 'Path: '.FILE_ROOT_PATH;
【解决方案3】:
这是错误的:
if(!defined(FILE_ROOT_PATH)){
defined() 需要一个带有常量名称的字符串。