Bir fonksiyon bir tip uzanır veya PHP başka bir miras olup olmadığını belirlemek için?

3 Cevap php

Bir sınıf başka bir miras olmadığını bilmek PHP bir yolu var mı?

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

3 Cevap

Sen instanceof kullanmanız gerekir.

implements yanlış olduğunu unutmayın. instanceof (nesne arabirimini uygulayıp uygulamadığını bir nesne kalıtsal bir sınıf olup olmadığını kontrol etmek, ya da) her iki durumda kullanılmalıdır.

Kılavuzun Örnek:

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof MyInterface);
?>

verir:

bool(true)
bool(true)

Evet, kullanabilirsiniz

if ($foo instanceof ClassName)
    // do stuff...

EDIT: Bildiğim kadarıyla biliyorum, bu hatta arayüzler için çalışması gerekir ...