ReflectionClass::getParentClass

(PHP 5)

ReflectionClass::getParentClassВозвращает родительский класс

Описание

public object ReflectionClass::getParentClass ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionClass.

Смотрите также

Коментарии

When you want to find all parents (parent, parent of parent, parent of parent's parent and so on) try:

<?php
$class 
= new ReflectionClass('whatever'); 

$parents = array();

while (
$parent $class->getParentClass()) {
   
$parents[] = $parent->getName();
}

echo 
"Parents: " implode(", "$parents);
?>

ReflectionClass::getParentClass() can return a ReflectionClass object of the parent class or false if no parent.

(PHP Version 5.1.6)
2010-11-18 06:34:59
http://php5.kiev.ua/manual/ru/reflectionclass.getparentclass.html
Here is a "replacement" for is_a that will additionally look both into the extended classes and in the implemented interfaces

<?php
/**
     * Check if a class extends or implements a specific class/interface
     * @param string $search The class or interface name to look for
     * @param string $className The class name of the object to compare to
     * @return bool
     */
   
function IsExtendsOrImplements$search$className ) {
       
$class = new ReflectionClass$className );
        if( 
false === $class ) {
            return 
false;
        }
        do {
           
$name $class->getName();
            if( 
$search == $name ) {
                return 
true;
            }
           
$interfaces $class->getInterfaceNames();
            if( 
is_array$interfaces ) && in_array$search$interfaces )) {
                return 
true;
            }
           
$class $class->getParentClass();
        } while( 
false !== $class );
        return 
false;
    }
?>
2010-12-16 03:26:38
http://php5.kiev.ua/manual/ru/reflectionclass.getparentclass.html
Quick correction, the code for getting all parent classes below has a "typo", you need to reset the $class variable to the parent class instance, otherwise it just endlessly loops:

        $class = new ReflectionClass('classname');
       
        $parents = array();
       
        while ($parent = $class->getParentClass()) {
            $parents[] = $parent->getName();
            $class = $parent;
        }
       
        echo "Parents: " . implode(", ", $parents);
2013-06-16 00:02:10
http://php5.kiev.ua/manual/ru/reflectionclass.getparentclass.html

    Поддержать сайт на родительском проекте КГБ