class A {
public static $foo = 42;
}
$class = 'A';
$attribute = 'foo';
var_dump(isset($class::$attribute)); //gives bool(false)
如何检查此静态属性是否存在于此类中?isset on static class attributes
class A {
public static $foo = 42;
}
$class = 'A';
$attribute = 'foo';
var_dump(isset($class::$attribute)); //gives bool(false)
如何检查此静态属性是否存在于此类中?isset on static class attributes
var_dump(isset($class::$$attribute)); // the two dollars are intentional
如果您没有PHP 5.3然而,唯一准确的方法可能是使用Reflection API:
$reflectionClass = new ReflectionClass($class);
$exists = $reflectionClass->hasProperty($attribute) && $reflectionClass->getProperty($attribute)->isStatic();
在5.3中,你可以简单地做
var_dump(property_exists($class, $attribute));
property_exists('class','attribute')来澄清这个答案 – Drew 2012-09-13 20:36:14
请停止在问题标题中写入标签。 – 2011-04-24 16:48:51
@Tomala Geret'kal:好的,下次我会做正确的:) – levu 2011-04-24 16:55:01