douqiao6563 2012-07-28 09:42
浏览 64
已采纳

如何获取常量的名称?

const

  STUFF      = 1,
  MORE_STUFF = 3,
  ...
  LAST_STUFF = 45;  


function($id = self::STUFF){
  if(defined('self::'.$id)){
    // here how do I get the name of the constant?
    // eg "STUFF"
  }
}

Can I get it without a huge case statement?

  • 写回答

3条回答 默认 最新

  • douguai4653 2012-07-28 09:50
    关注

    Have a look at ReflectionClass::getConstants.

    Something like (it's pretty ugly and inefficient, btw):

    class Foo {
        const
    
          STUFF      = 1,
          MORE_STUFF = 3,
          ...
          LAST_STUFF = 45;     
    
        function get_name($id = self::STUFF)
        {
             $rc = new ReflectionClass ('Foo');
             $consts = $oClass->getConstants ();
    
             foreach ($consts as $name => $value) {
                 if ($value === $id) {
                     return $name;
                 }
             }
             return NULL;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程