PHP:使用ReflectionClass从静态方法获取类常量

时间:2012-02-27 05:31:03

标签: php reflection static

我试图从静态方法中获取类常量列表。

public static function example()
{
  $reflection = new \ReflectionClass(get_called_class());
  var_dump($reflection -> getConstants());
}

引发Fatal error: Cannot access self:: when no class scope is active

有没有办法让这个工作,或者我是否违反了php的另一种语言限制?

2 个答案:

答案 0 :(得分:0)

我刚刚尝试过您的代码,它可以正常运行您的实际课程示例吗?

class test23 {
    const te = 'asd';
    var $ya = 'hoopla';
    public static function example()
    {
        $reflection = new ReflectionClass(get_called_class());
        var_dump($reflection -> getConstants());
    }
}

test23::example();返回array(1) { ["te"]=> string(3) "asd" }

答案 1 :(得分:-2)

// creates a reflection class object
$reflection = new ReflectionClass ( $this );

//gets all the constants of the current class 
$consts = $reflection->getConstants ();
希望它有所帮助。