在父方法中获取子类名[duplicate]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在父方法中获取子类名[duplicate]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我在父类中有一个函数,我现在扩展父类我想在父函数中获取子类名并执行一些操作。

这是我正在尝试的代码示例,但这对我不起作用。

父类(Foo)

 class Foo {
     function method(){
        $childeClass = self::class;
        // code
     }
 }

儿童班(酒吧)

class Bar extends Foo{}

如何在父方法中获取子类名称Bar? self::class没有归还儿童班。

答案

您可以使用Late Static Binding来完成此操作

后期静态绑定通过存储最后一次“非转发调用”中指定的类来工作

你无法通过使用self::class而不是使用static::class来实现它

 class Foo {
     function method(){
        $childeClass = static::class;
        // code
     }
 }

欲了解更多信息,请阅读Late Static Binding

以上是关于在父方法中获取子类名[duplicate]的主要内容,如果未能解决你的问题,请参考以下文章

c#如何在父类(或是接口)当中定义一个子类必须要重写的字段(属性)?

Java—重写与重载的区别

C#中基类属性值在子类中设置,如何在基类的方法中获取子类设置的值?

重载与重写

共享元素转换在父片段和子片段之间不起作用(嵌套片段)

PHP 父类静态方法中调用子类静态方法