Наглядная шпаргалка по методам получения имени класса в 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
Комментарии (0)