ConFoo 2025

ReflectionClass::getStaticProperties

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getStaticPropertiesObtém propriedades estáticas

Descrição

public ReflectionClass::getStaticProperties(): array

Obtenha as propriedades estáticas.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

As propriedades estáticas, como um array.

Registro de Alterações

Versão Descrição
8.3.0 O tipo de retorno de ReflectionClass::getStaticProperties() foi alterado para array de ?array.

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 2 notes

up
2
jlennox @ google mail
14 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.
up
1
joao dot felipe dot c dot b at gmail dot com
8 years ago
getStaticProperties return a set of the property itself. It's diferente from getProperties(ReflectionProperty::IS_STATIC) because it return a set of ReflectionProperty class.
To Top