静态类属性上的 isset

发布于 2024-11-03 00:13:31 字数 187 浏览 6 评论 0原文

class A {
    public static $foo = 42;
}

$class = 'A';
$attribute = 'foo';

var_dump(isset($class::$attribute)); //gives bool(false)

我如何检查这个类中是否存在这个静态属性?

class A {
    public static $foo = 42;
}

$class = 'A';
$attribute = 'foo';

var_dump(isset($class::$attribute)); //gives bool(false)

How can i checkt, of this static attribute exists in this class?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

帝王念 2024-11-10 00:13:31

使用 变量

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();

Use variable variables:

var_dump(isset($class::$attribute)); // the two dollars are intentional

If you don't have PHP 5.3 yet the only accurate way is probably using the Reflection API:

$reflectionClass = new ReflectionClass($class);
$exists = $reflectionClass->hasProperty($attribute) && $reflectionClass->getProperty($attribute)->isStatic();
扮仙女 2024-11-10 00:13:31

在5.3中,你可以简单地做

var_dump(property_exists($class, $attribute));

In 5.3, you can simply do

var_dump(property_exists($class, $attribute));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文