Самый простой способ получить все статические свойства класса в PHP

У меня есть статический класс Foo (это не реальный класс, поэтому статические поля только для примера)

class Foo{
    public static $name = "foo";
    public static $age = "18";
    public static $city = "Boston";
}

в моем коде я хочу построить массив всех публичных статических свойств и их текущих значений.

есть ли быстрый / простой способ, который любой может предложить сделать это без создания экземпляра Foo?

2 ответов


использовать ReflectionClass экземпляр такой, чтобы получить массив имен свойств и значений:

$class = new ReflectionClass('Foo');
$staticProperties = $class->getStaticProperties();

foreach ($staticProperties as $propertyName => $value) { 
    // Your code here
}

использовать отражение

<?php
require_once "Foo.php";
$reflection = new ReflectionClass("Foo"); 
$staticProperties = $reflection->getStaticProperties();
print_r($staticProperties)