2015-09-08 99 views
10

當我讀取在Laravel框架中編寫的代碼時,我看到ClassName::class的很多用法。修飾符::class的含義是什麼?這是Laravel還是PHP的特性?我已經搜索,但無法找到文檔。在PHP中,ClassName :: class是什麼意思?

+0

思想使用Google呢? :-) –

+0

謝謝驗證! – yinwei

+1

「ClassName :: class」如何成爲Laravel功能。該語法用於生成FQCN(完全限定類名稱)。我認爲你甚至懶得去搜索它 – kishanterry

回答

23

從PHP 5.5開始,class關鍵字也用於類名解析。您可以通過使用ClassName::class獲得包含ClassName類的完全限定名稱的字符串。這對命名空間類特別有用。

例如

namespace MyProject; 
class Alpha{ } 

namespace MyOtherProject; 
class Beta{ } 

echo Alpha::class; // displays: MyProject\Alpha 
echo Beta::class; // displays: MyOtherProject\Beta 
+0

謝謝驗證! – yinwei

+5

@yinwei如果回答了您的問題,請接受答案 – frankpinto

5

它只是返回的類名的命名空間! 從PHP 5.5開始,類關鍵字也用於類名稱解析。您可以通過使用ClassName :: class來獲取包含ClassName類的完全限定名稱的字符串。這對命名空間類特別有用。

namespace NS { 
    class ClassName { 
    } 
    echo ClassName::class; 
} 

上例將輸出:

NS\ClassName 
相關問題