我知道可以使用变量作为名称来访问对象属性/方法

前任。:

$propName = 'something';
$something = $object->$propName;

是否可以使用常量或静态属性执行相同的操作?

我试过了:

$constName = 'MY_CONST';
MyCLass::{$constName};


$obj::{$constName};

但似乎没有任何效果,我在任何地方都找不到。

最佳答案

使用: Class::$$constName ,这类似于普通的 variable variables

演示:

<?php
class MyClass {
    public static $var = 'A';
}
$name = 'var';
echo MyClass::$$name; // echoes 'A'

可以使用 constant 函数访问常量:
constant('MyClass::'.$constantName)

10-07 17:49