17.03.2011 -

Alle functionen mit get_class_method ermitteln

mit der php-Funktion get_class_method() wird ein Array aller public-Funktionen einer Klasse zurück gegeben.

Aber wie kommt man an die protected- und privat-Funktionen?

An diese Functionen kommt man indem man innerhalb der Klasse die get_class_method() aufruft:

class Foo
{
    public static function getclassmethods()
    {
        return get_class_methods('Foo');
    }
}

$arr = Foo::getclassmethods();

Wenn jedoch meine Klasse von einer anderen Klasse abgeleitet wird, bekomme ich auch alle Methoden aus der Elternklasse mitgeliefert.

Um da den Unterschied rauszufiltern, holle ich mir nur die Differenz aus den beiden Klassen.

class Foo extends FooBase
{
    public static function getclassmethods()
    {
        $allMethods = get_class_methods('Foo');
        $parentMethods = get_class_methods(get_parent_class('FooBase'));
        return array_diff( $allMethods , $parentMethods );
    }
}

$arr = Foo::getclassmethods();

Somit erhalte ich in meinem $arr nur die Methoden der Klasse Foo.

© EGARA-CMS ist ein urheberrechtlich geschütztes Produkt der DREIWERKEN GmbH - Ihrer Werbeagentur für Online- und Print-Medien aus Kolbermoor (bei Rosenheim).