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