Наглядная шпаргалка по методам получения имени класса в PHP

<?php
namespace Test;

trait A {
    public function getClass() {return get_class();}
    public function className() {return __CLASS__;}
    public function traitName() {return __TRAIT__;}
    public function getCalledClass() { return get_called_class(); }
    public function getStaticClass() { return static::class; }
}

class B {
    use A;
    public function usedTraitName() {return __TRAIT__;}
}

class C extends B {}

$test = new C;

echo '$test->getClass():'       . $test->getClass() . "\n";       // Test\B
echo 'get_class($class):'       . get_class($test) . "\n";        // Test\C
echo '$test->className():'      . $test->className() . "\n";      // Test\B
echo '$test->traitName():'      . $test->traitName() . "\n";      // Test\A
echo '$test->usedTraitName():'  . $test->usedTraitName() . "\n";  // ""
echo '$test->getCalledClass():' . $test->getCalledClass() . "\n"; // Test\C
echo '$test->getStaticClass():' . $test->getStaticClass() . "\n"; // Test\C
echo 'C::class:'                . C::class . "\n";                // Test\C

 

Теги: PHP, hint

Комментарии (0)