[PHP] ::class的具體作用

類名::class可以獲取到類名稱字符串 , 當使用命名空間時可以獲取到完整名稱

 

<?php
namespace NS {
    class ClassName {
    }

    echo ClassName::class;
}
?>

可以得到 

NS\ClassName

 

使用 ::class 解析類名操作會在底層編譯時進行。這意味着在執行該操作時,類還沒有被加載。 因此,即使要調用的類不存在,類名也會被展示。在此種場景下,並不會發生錯誤。

自 PHP 8.0.0 起,::class 關鍵字也可以對象上使用。 與上述情況不同,此時解析將會在運行時進行。此操作的運行結果和 get_class() 函數一致。

<?php
namespace NS {
    class ClassName {
    }
}
$c = new ClassName();
print $c::class;
?>

輸出

NS\ClassName  

與get_class($c)的結果一樣

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章