On dirait que tu as répondu à ta propre question. get_class
vous donnera le nom de la classe. C'est une procédure et c'est peut-être ce qui cause la confusion. Jetez un coup d'œil à la documentation php pour get_class
Voici leur exemple :
<?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
Pour que cela ressemble plus à votre exemple, vous pourriez faire quelque chose comme :
<?php
class MyClass
{
public static function getClass()
{
return get_class();
}
}
Maintenant vous pouvez le faire :
$className = MyClass::getClass();
Cette méthode est toutefois quelque peu limitée, car si ma classe est étendue, elle renverra toujours 'MyClass'. Nous pouvons utiliser get_called_class
au lieu de cela, qui s'appuie sur Liaison statique tardive est une fonctionnalité relativement nouvelle, qui nécessite 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'