Parece que você respondeu sua própria pergunta. get_class
obterá o nome da classe. É processual e talvez seja isso que esteja causando a confusão. Dê uma olhada na documentação php paraget_class
Aqui está o exemplo deles:
<?php
class foo
{
function name()
{
echo "My name is " , get_class($this) , "\n";
}
}
// create an object
$bar = new foo();
// external call
echo "Its name is " , get_class($bar) , "\n"; // It's name is foo
// internal call
$bar->name(); // My name is foo
Para torná-lo mais parecido com o seu exemplo, você poderia fazer algo como:
<?php
class MyClass
{
public static function getClass()
{
return get_class();
}
}
Agora você pode fazer:
$className = MyClass::getClass();
Isso é um pouco limitado, entretanto, porque se minha classe for estendida, ela ainda retornará 'MyClass'. Podemos usar get_called_class
, em vez disso, o que depende de Late Static Binding , um recurso relativamente novo e requer PHP> = 5.3.
<?php
class MyClass
{
public static function getClass()
{
return get_called_class();
}
public static function getDefiningClass()
{
return get_class();
}
}
class MyExtendedClass extends MyClass {}
$className = MyClass::getClass(); // 'MyClass'
$className = MyExtendedClass::getClass(); // 'MyExtendedClass'
$className = MyExtendedClass::getDefiningClass(); // 'MyClass'