在静态类属性上的isset [英] isset on static class attributes

查看:78
本文介绍了在静态类属性上的isset的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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?

推荐答案

使用变量变量:

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

如果您还没有PHP 5.3,则唯一准确的方法可能是使用 Reflection API :

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

这篇关于在静态类属性上的isset的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆