2015-12-06 6 views

ответ

4

Классные имена не относятся к регистру в PHP.

Похоже, что get_class($obj) возвращает истинное имя класса (в ядре PHP) и ::class возвращает имя класса, используемое в коде пользователя.

<?php 
// PHP 5.5 
var_dump(get_class(new DaTeTImE())); // string(8) "DateTime" 
var_dump(DaTeTImE::class);   // string(8) "DaTeTImE" 

// От PHP Team: Конструкт «:: класс» делается исключительно во время компиляции, исходя из очевидного ClassName принятого в этом не проверяется написание фактического имени класса, или даже. что класс существует

<?php 
echo dAtEtImE::class; // Output is "dAtEtImE" 
echo ThisDoesNotExist::class; // Output is "ThisDoesNotExist" 
-1

Нет никакой разницы, это всего лишь два стиля кодирования.

+0

Тогда почему 'get_class (новый Datetime())' не striclty равнее 'Datetime :: class' –

+0

Где вы видите разницу? –

+0

Datetime и DateTime с верхним T –

Смежные вопросы