场景:一般把常用的数据定义成常量枚举,可是发现php并没有枚举,所以用了常量,比如状态,一般有2种取值,表示删除和正常在用,因此需要统一定义这两个常量的取值,从而就出现一种情况,即如何知道这两个常量的意义,因为需要在后台把已经定义的常量显示到页面,由管理员统一查看,因此需要读取常量的注释,如图

解决方案 »

  1.   

    使用reflectionclassclass test{    /**
         * @param  String $str 字符串
         * @return String
         */
        function abc($str){
            return $str;
        }}$obj = new test;
    $ref = new ReflectionClass($obj);
    $methods = $ref->getMethods();
    echo '<pre>';
    if($methods){
        foreach($methods as $method){
            echo 'method name: '.$method->getName().PHP_EOL;
            echo 'method params num: '.$method->getNumberOfParameters().PHP_EOL;
            $params = $method->getParameters();
            if($params){
                foreach($params as $param){
                    echo 'param name:'.$param->getName().PHP_EOL;
                }
            }
            echo 'method comments: '.$method->getDocComment().PHP_EOL.PHP_EOL;
        }
    }
    echo '</pre>';
    method name: abc
    method params num: 1
    param name:str
    method comments: /**
         * @param  String $str 字符串
         * @return String
         */
      

  2.   


    类的方法和属性都可以读取,常量读取不了人家都已经抛砖引玉了,你就看看php手册嘛。
    手册里面有一个方法:ReflectionClass::getConstants ,其他的我就不说了,看手册即可。