php - 使用包含常量名称的简单变量访问类常量

标签 php class variables constants

我正在尝试访问我的一个类中的类常量:

const MY_CONST = "value";

如果我有一个像这样保存这个常量名称的变量:

$myVar = "MY_CONST";

我能以某种方式访问​​ MY_CONST 的值吗?

self::$myVar

显然不起作用,因为它适用于静态属性。 变量变量也不起作用。

最佳答案

有两种方法可以做到这一点:使用 constant函数或使用 reflection .

常数函数

常量函数适用于通过define声明的常量以及类常量:

class A
{
    const MY_CONST = 'myval';

    static function test()
    {
        $c = 'MY_CONST';
        return constant('self::'. $c);
    }
}

echo A::test(); // output: myval

反射类

第二种更费力的方法是通过反射(reflection):

$ref = new ReflectionClass('A');
$constName = 'MY_CONST';
echo $ref->getConstant($constName); // output: myval

关于php - 使用包含常量名称的简单变量访问类常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7506530/

相关文章:

python - 如何创建一个仅在满足某些条件时才进行实例化的类?

java - 需要帮助将一个类实现到另一个代码块中并运行一个类 java

perl - 什么时候应该使用包变量和词法变量(有什么区别)?

python - 字符串变量到变量名?

javascript - 发送警报通知时播放声音

php - 使用 Y-m-dTH :i:s 验证 Laravel 日期格式

c++ - C++中有没有办法让派生类重写基类静态方法?

Bash 在变量中存储命令 PID 并终止进程

c# - 我如何将 RSAParameters 从 .net 转换为 .pem 文件,以便我可以在 php 中使用它

php - mysql列的月明智总和