有没有办法从类中获取静态属性而无需创建类的实例?
$reflection = new ReflectionObject( 'Foo' );
$staticProperties = $reflection->getStaticProperties();
这样做会引发错误。
ReflectionObject::__construct() expects parameter 1 to be object, string given in test.php on line 19
这是php 5.5 文档似乎表明我应该能够传递一个字符串..
http://php.net/manual/en/reflectionclass.construct.php
Either a string containing the name of the class to reflect, or an object.
有什么想法吗?想要获得它们而无需令牌解析文件。
答案 0 :(得分:3)
就像@PeeHaa指出的那样,ReflectionObject
不是ReflectionClass
。
新代码:
$reflection = new ReflectionClass( 'Foo' );
$staticProperties = $reflection->getStaticProperties();
答案 1 :(得分:0)
ReflectionObject提供有关对象实例的信息。您在问题中寻找和链接的是ReflectionClass。
答案 2 :(得分:0)
此链接直接来自php参考: http://php.net/manual/en/reflectionclass.getstaticpropertyvalue.php
<?php
class Apple {
public static $color = 'Red';
}
$class = new ReflectionClass('Apple');
var_dump($class->getStaticPropertyValue('color'));
?>
所以在这里你可以看到你需要一个类和静态属性的名称(请求的字符串)
答案 3 :(得分:0)
尝试:
ClassName::propertyName
这是:
ReflectionObject::getStaticProperties()