(PHP 5)
ReflectionClass::getStaticProperties — Gets static properties
Get the static properties.
Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.
Diese Funktion hat keine Parameter.
The static properties, as an array.
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.