PHP 5.6.0RC3 is available

ReflectionClass::getStaticProperties

(PHP 5)

ReflectionClass::getStaticPropertiesObtiene las propiedades estáticas

Descripción

public array ReflectionClass::getStaticProperties ( void )

Devuelve las propiedades estáticas.

Advertencia

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Parámetros

Esta función no tiene parámetros.

Valores devueltos

Las propiedades estáticas, en un array.

Ver también

add a note add a note

User Contributed Notes 1 note

up
1
jlennox @ google mail
4 years ago
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.
To Top