2016-10-28 10 views
1

在我的一個類中,我有一個變量,它包含一個在我使用的另一個庫類中聲明的常量。PHP constant()引用另一個類的常量

我試圖用它作爲這樣的:

constant($colour)

$colour = PHPExcel_Style_Color::COLOUR_YELLOW

PHP日誌拋出錯誤,如:

PHP的警告:常數():Couldn找不到恆定的 PHPExcel_Style_Color :: COLOUR_YELLOW

如果我直接使用常量而不是變量,它會正常工作。 PHPExcel_Style_Color::COLOUR_YELLOW

任何原因,我會看到這個錯誤使用constant()函數與變量?

回答

1

如果您在名稱空間內使用它,則需要絕對名稱空間。

$colour = 'PHPExcel_Style_Color::COLOUR_YELLOW'是相對的。

如果PHPExcel_Style_Color是頂級命名空間,那麼你可能只需要在它的開頭添加一個斜槓\

試試這個:

constant('\' . $colour); 

這將使整個路徑:

\PHPExcel_Style_Color::COLOUR_YELLOW 

沒有斜槓,它等同於:

MyNamespace\PHPExcel_Style_Color::COLOUR_YELLOW 
+0

我猜他是使用字符串,基於產生的錯誤。 OP的類可能是命名空間。我相信constant()函數與所有其他接受類名稱作爲字符串的PHP函數一樣,都需要完全限定的類名 – georaldc

+0

是的,它是一個字符串。 我對緻密感到抱歉,但是我應該怎樣做才能完全改善課程名稱? – Gurnzbot

+0

如果它不在另一個命名空間中,通常只需添加一個斜槓就可以實現。 – samanime

相關問題