使用包含常量名称的简单变量访问类常量
P粉691461301
P粉691461301 2023-10-20 14:57:01
0
2
398

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

const MY_CONST = "value";

如果我有一个变量来保存这个常量的名称,如下所示:

$myVar = "MY_CONST";

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

self::$myVar

这显然不起作用,因为它是针对静态属性的。 另外,变量变量也不起作用。

P粉691461301
P粉691461301

répondre à tous(2)
P粉103739566

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

常量函数

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

class A
{
    const MY_CONST = 'myval';

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

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

反射类

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

$ref = new ReflectionClass('A');
$constName = 'MY_CONST';
echo $ref->getConstant($constName); // output: myval
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!