【问题标题】:How to know if a class is inherited from another class in PHP? [duplicate]如何知道一个类是否继承自 PHP 中的另一个类? [复制]
【发布时间】:2017-09-14 18:50:23
【问题描述】:

我只有类字符串而不是对象。而对于new,一个新对象可能不是最好的解决方案。

【问题讨论】:

标签: php


【解决方案1】:

class_parents() 函数将返回一个数组,其中包含继承树中所有类的名称,并通过向其传递类名或实例来工作。

然后您可以简单地检查返回数组的结果

【讨论】:

    【解决方案2】:

    PHP 函数is_subclass_of 可以使用两个字符串作为参数进行操作。您不需要实例化任何对象来测试它,或者使用反射,这是一个相当昂贵的操作(正如在副本的接受答案中所建议的那样)。

    class foo {}
    class bar extends  foo {}
    
    is_subclass_of('bar', 'foo'); // true
    

    这也可以用来测试一个类是否实现了一个接口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 2012-04-29
      • 2014-04-14
      • 2014-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多