PHP Doku:: Gets static properties - reflectionclass.getstaticproperties.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzVariablen- und typbezogene ErweiterungenReflectionThe ReflectionClass classReflectionClass::getStaticProperties

Ein Service von Reinhard Neidl - Webprogrammierung.

The ReflectionClass class

<<ReflectionClass::getStartLine

ReflectionClass::getStaticPropertyValue>>

ReflectionClass::getStaticProperties

(PHP 5)

ReflectionClass::getStaticPropertiesGets static properties

Beschreibung

public array ReflectionClass::getStaticProperties ( void )

Get the static properties.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion hat keine Parameter.

Rückgabewerte

The static properties, as an array.

Siehe auch


Ein BenutzerBeitrag:
- Beiträge aktualisieren...
jlennox @ google mail
8.05.2010 19:03
I had the need to recursive merge the results from a subclass with all of it's parents, and this was the resulting code:

<?php
function GetStaticPropertiesRecursive($class) {
   
$currentClass = $class;
   
$joinedProperties = array();
    do {
       
$reflection = new ReflectionClass($class);
       
$staticProperties = $reflection->getStaticProperties();
        foreach (
$staticProperties as $name => $value) {
            if (
is_array($value)) {
                if (isset(
$joinedProperties[$name]))
                   
$joinedProperties[$name] = array_merge($value, $joinedProperties[$name]);
                else
                   
$joinedProperties[$name] = $value;
            } else {
                if (isset(
$joinedProperties[$name]))
                   
$joinedProperties[$name][] = $value;
                else
                   
$joinedProperties[$name] = array($value);
            }
        }
    } while (
$class = get_parent_class($class));
    return
$joinedProperties;
}

Using this function:
class
base {
    public static
$Test = array("foo1", "foo2");
}
class
sub extends base {
    public static
$Test = "sub";
}

print_r(GetStaticPropertiesRecursive("sub"));
?>

That outputs:
Array
(
    [Test] => Array
        (
            [0] => foo1
            [1] => foo2
            [2] => sub
        )

)

The merge follows the rules of array_merge on duplicate keys.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)