有没有办法让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
Run Code Online (Sandbox Code Playgroud)
你需要使用instanceof.
注意这implements是不正确的. instanceof应该在两种情况下都使用(检查对象是否是继承的类,或者对象是否实现了接口).
手册示例:
<?php
interface MyInterface
{
}
class MyClass implements MyInterface
{
}
$a = new MyClass;
var_dump($a instanceof MyClass);
var_dump($a instanceof MyInterface);
?>
Run Code Online (Sandbox Code Playgroud)
得到:
bool(true)
bool(true)
Run Code Online (Sandbox Code Playgroud)