PHP 8.6.0 Beta 1 is available for testing

ReflectionClass::getStaticProperties

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getStaticPropertiesВозвращает статические свойства

Описание

public function ReflectionClass::getStaticProperties(): array

Возвращает статические свойства.

Список параметров

Сигнатура функции не содержит параметров.

Возвращаемые значения

Массив (array ) статических свойств.

Список изменений

Версия Описание
8.3.0 Тип возвращаемого значения метода ReflectionClass::getStaticProperties() был изменён на array с ?array.

Смотрите также

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей 2 notes

up
2
jlennox @ google mail
16 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
10 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.
+Добавить

AltStyle によって変換されたページ (->オリジナル) /