如何在 PHP 中获取类名?

新手上路,请多包涵
public class MyClass {

}

在 Java 中,我们可以使用 String className = MyClass.class.getSimpleName(); 来获取类名

如何在 PHP 中做到这一点?我已经知道 get_class() ,但它只适用于对象。目前我在 Active Record 工作。我需要像 MyClass::className 这样的声明。

原文由 Rezan Achmad 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

从 PHP 5.5 开始,您可以通过 ClassName::class 使用类名解析。

查看 PHP5.5 的新特性

 <?php

namespace Name\Space;

class ClassName {}

echo ClassName::class;

?>

如果要在类方法中使用此功能,请使用 static::class

 <?php

namespace Name\Space;

class ClassName {
   /**
    * @return string
    */
   public function getNameOfClass()
   {
      return static::class;
   }
}

$obj = new ClassName();
echo $obj->getNameOfClass();

?>

对于旧版本的 PHP ,您可以使用 get_class()

原文由 Dado 发布,翻译遵循 CC BY-SA 3.0 许可协议

从 PHP 8.0 开始,您甚至可以在对象上使用 ::class

 $object = new \SplPriorityQueue();

assert($object::class === \SplPriorityQueue::class);

原文由 MAChitgarha 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题