ReflectionClass::getParentClass

(PHP 5)

ReflectionClass::getParentClassGets parent class

Description

public object ReflectionClass::getParentClass ( void )

Warning

This function is currently not documented; only its argument list is available.

Parameters

This function has no parameters.

Return Values

A ReflectionClass.

See Also

Коментарии

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

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