PHP常量()引用另一个类';s常数

PHP常量()引用另一个类';s常数,php,Php,在我的一个类中,我有一个变量,该变量包含一个常量,该常量在我正在使用的另一个库类中声明 我正试图这样使用它: 常量($color) 其中$Color=PHPExcel\u Style\u Color::Color\u YELLOW PHP日志抛出错误,例如: PHP警告:常量():找不到常量 PHPExcel_风格_颜色::颜色_黄色 如果我是直接使用常量而不是变量,它会工作得很好。 PHPExcel\u样式\u颜色::颜色\u黄色 使用带有变量的constant()函数时出现此错误的原因是什么

在我的一个类中,我有一个变量,该变量包含一个常量,该常量在我正在使用的另一个库类中声明

我正试图这样使用它:

常量($color)

其中
$Color=PHPExcel\u Style\u Color::Color\u YELLOW

PHP日志抛出错误,例如:

PHP警告:常量():找不到常量 PHPExcel_风格_颜色::颜色_黄色

如果我是直接使用常量而不是变量,它会工作得很好。
PHPExcel\u样式\u颜色::颜色\u黄色


使用带有变量的
constant()
函数时出现此错误的原因是什么?

如果在命名空间中使用它,则需要绝对命名空间

$Color='PHPExcel\u Style\u Color::Color\u YELLOW'
是相对的

如果
PHPExcel\u Style\u Color
是它的顶级名称空间,那么您可能只需要在它的开头添加一个斜杠
\

试试这个:

constant('\' . $colour);
这将使整个路径:

\PHPExcel_Style_Color::COLOUR_YELLOW
如果没有斜杠,它相当于:

MyNamespace\PHPExcel_Style_Color::COLOUR_YELLOW

根据产生的错误,我猜他在使用字符串。OP的类可能具有名称空间。我相信constant()函数和所有其他接受类名为字符串的PHP函数一样,需要一个完全限定的类名是的,它是一个字符串。我很抱歉过于密集,但是我应该做些什么来完全提高类名的质量呢?如果类名不在另一个名称空间中,通常只需添加一个斜杠就可以了。