获取类静态成员变量的数组


Get an array of class static member variables

示例类:

class Example{
   public static $ONE = [1,'one'];
   public static $TWO = [2,'two'];
   public static $THREE = [3,'three'];
   public static function test(){
       // manually created array 
       $arr = [
           self::$ONE,
           self::$TWO,
           self::$THREE
       ];
   }       
}

PHP中有没有一种方法可以获得一个类静态成员变量数组,而无需像示例中那样手动创建它?

有:

使用反射和getStaticProperties()方法

class Example{
   public static $ONE = [1,'one'];
   public static $TWO = [2,'two'];
   public static $THREE = [3,'three'];
   public static function test(){
        $reflection = new ReflectionClass(get_class()); 
        return $reflection->getStaticProperties();
    }       
}
var_dump(Example::test());

演示