:: class和get_class之间的差异

Fab*_*pet 9 php

你能解释一下之间的区别 get_class($instance)ClassName::class

<?php
// PHP 5.5
var_dump(get_class(new Datetime())); // string(8) "DateTime" 
var_dump(Datetime::class); // string(8) "Datetime" with lower t
Run Code Online (Sandbox Code Playgroud)

Rob*_*det 12

PHP中的类名称不具备案例性.

它似乎get_class($obj)返回true classname(在PHP核心中)并::class返回用户代码中使用的类名.

<?php
// PHP 5.5
var_dump(get_class(new DaTeTImE())); // string(8) "DateTime" 
var_dump(DaTeTImE::class);           // string(8) "DaTeTImE"
Run Code Online (Sandbox Code Playgroud)

//来自PHP团队:':: class'构造完全在编译时完成,基于传入的表观类名.它不检查实际类名的拼写,甚至不存在类的存在

<?php
echo dAtEtImE::class; // Output is "dAtEtImE"
echo ThisDoesNotExist::class; // Output is "ThisDoesNotExist"
Run Code Online (Sandbox Code Playgroud)