首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP中获取类名?

如何在PHP中获取类名?
EN

Stack Overflow用户
提问于 2013-02-27 11:45:39
回答 8查看 173.2K关注 0票数 116
代码语言:javascript
复制
public class MyClass {

}

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

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

EN

回答 8

Stack Overflow用户

发布于 2013-02-27 11:47:42

您可以在类中使用__CLASS__来获取名称。

http://php.net/manual/en/language.constants.predefined.php

票数 32
EN

Stack Overflow用户

发布于 2013-02-27 12:11:44

听起来你回答了你自己的问题。get_class将为您提供类名。这是程序性的,也许这就是造成混乱的原因。看看get_class的php文档。

下面是他们的例子:

代码语言:javascript
复制
 <?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

为了让它更像你的例子,你可以这样做:

代码语言:javascript
复制
 <?php

 class MyClass
 {
       public static function getClass()
       {
            return get_class();
       }
 }

现在您可以执行以下操作:

代码语言:javascript
复制
 $className = MyClass::getClass();

然而,这在某种程度上是有限的,因为如果我的类被扩展了,它仍然会返回'MyClass‘。我们可以改为使用get_called_class,它依赖于Late Static Binding,这是一个相对较新的功能,并且需要PHP >= 5.3。

代码语言:javascript
复制
<?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'
票数 28
EN

Stack Overflow用户

发布于 2017-10-25 17:38:23

要获取类名,可以使用ReflectionClass

代码语言:javascript
复制
class MyClass {
    public function myNameIs(){
        return (new \ReflectionClass($this))->getShortName();
    }
}
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15103810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档