php - 检查扩展

标签 php class oop extends

<分区>

我尝试检测一个被另一个扩展,但它不起作用。任何人都可以指出我正确的方向吗?

class Main
{
}

class Sub extends Main
{
}

class Third
{
}

$check = class_extends('Sub', 'Main'); // should return true
$check = class_extends('Third', 'Main'); // should return false

那么这是否可能,如果可能,如何实现?

最佳答案

您可能正在寻找 is_subclass_of .也适用于实例和字符串类名,假设您有这些类:

class B {}
class C extends B {}
class A {}

然后

var_dump(is_subclass_of('C', 'B')); // true, C is subclass of B
var_dump(is_subclass_of('C', 'A')); // false C is not subclass of A

或者,如果您喜欢瘦箭头 (->),您可以使用 reflection也是:

$refC = new ReflectionClass('C');
var_dump($refC->isSubclassOf('B')); // true, C is subclass of B
var_dump($refC->isSubclassOf('A')); // false C is not subclass of A

关于php - 检查扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19701244/

相关文章:

PHP 函数无法识别不同的语言

c++ - 类列表的 vector 中的值不被修改

javascript - 检查是否使用 jQuery/JavaScript 将特定对象加载到 DOM 中?

java - 覆盖 Java 中的属性

javascript - 针对 JavaScript 代码的 CakePHP 表单验证

php - doctrine2 查询同花后的顺序

php - 如何使用 PHP 更新 mysql 中的数据?

python - 未绑定(bind)方法错误 - 基于文本的冒险

c++ - RGB LED和伺服电机存在问题

php - 在匿名函数中使用 static::method() 会在 PHP 版本之间产生不同的结果