class A { public static $foo = 42; } $class = 'A'; $attribute = 'foo'; var_dump(isset($class::$attribute)); //gives bool(false)
Как я могу проверить этот атрибут static в этом классе?
Используйте переменные переменные :
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));