我正在尝试访问我的一个类中的类常量:
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/