我希望能够做这样的事情:
class ThingIDs
{
const Something = 1;
const AnotherThing = 2;
}
$thing = 'Something';
$id = ThingIDs::$thing;
这不管用。有没有一种简单的方法来做一些等价的事情?注意,我被这个类卡住了;它在一个我不能重写的库中。我正在编写在命令行上接受参数的代码,我真的希望它接受符号名称,而不是id号。
发布于 2011-05-27 10:20:20
使用constant()函数:
$id = constant("ThingIDs::$thing");
发布于 2011-05-27 10:19:41
使用反射
$r = new ReflectionClass('ThingIDs');
$id = $r->getConstant($thing);
发布于 2014-10-07 15:26:01
如果使用命名空间,则应将命名空间包括在类中。
echo constant('My\Application\ThingClass::ThingConstant');
https://stackoverflow.com/questions/6147102
复制相似问题