是否有PHP办法知道,如果一个类继承另一个?
class Controller
{
}
class HomeController extends Controller
{
}
class Dummy
{
}
// What I would like to do
$result = class_extends('HomeController', 'Controller'); /// true
$result = class_extends('Dummy', 'Controller'); /// false
您需要使用的instanceof 。
请注意, implements
不正确。 instanceof
应在两种情况下可以使用(检查对象是否是继承的类,或对象是否实现了一个接口)。
从手动例如:
<?php
interface MyInterface
{
}
class MyClass implements MyInterface
{
}
$a = new MyClass;
var_dump($a instanceof MyClass);
var_dump($a instanceof MyInterface);
?>
得到:
bool(true)
bool(true)
是的,你可以使用
if ($foo instanceof ClassName)
// do stuff...
编辑 :据我所知,这应该即使是接口工作...
我可以在电子书籍instanceof
运算符 ?
class A { }
class B extends A { }
class C { }
$b = new B;
$c = new C;
var_dump($b instanceof A, $c instanceof A) // bool(true), bool(false)
文章来源: A function to determine whether one type extends or inherits another in PHP?