ReflectionClass
在线手册:中文  英文

ReflectionClass::getDocComment

(PHP 5 >= 5.1.0)

ReflectionClass::getDocComment获取文档注释

说明

public string ReflectionClass::getDocComment ( void )

从一个类中获取文档注释。

Warning

本函数还未编写文档,仅有参数列表。

参数

此函数没有参数。

返回值

如果存在则返回文档注释,否则返回 FALSE

范例

Example #1 ReflectionClass::getDocComment() 例子

<?php
/** 
* A test class
*
* @param  foo bar
* @return baz
*/
class TestClass { }

$rc = new ReflectionClass('TestClass');
var_dump($rc->getDocComment())
?>

以上例程会输出:

string(55) "/** 
* A test class
*
* @param  foo bar
* @return baz
*/"

参见


ReflectionClass
在线手册:中文  英文

用户评论:

uramihsayibok, gmail, com (2010-09-15 21:50:56)

According to what I can find in the PHP (5.3.2) source code, getDocComment will return the doc comment as the parser found it.
The doc comment (T_DOC_COMMENT) must begin with a /** - that's two asterisks, not one. The comment continues until the first */. A normal multi-line comment /*...*/ (T_COMMENT) does not count as a doc comment.

The doc comment itself includes those five characters, so <?php substr($doccomment3, -2?> will get you what's inside. A call to trim() after is recommended.

leosouza at hotmail dot com (2010-02-26 10:10:50)

The code getDocComment() is not as effective as it seems, a method with a well-crafted regular expression, can solve some problems that this method does not address, for example: Some comments that begin with "/ *" will not be returned in a file too extensive.

The method below shows how you can use a regular expression to get better results.

This code snippet captures the comments in a file. "Php" and replaces it with an empty string, ie "cut" the comments of a class: 

<?php
    
public function getComments() {

        
$expr "/((?:\/\*(?:[^*]|(?:\*+[^*\/]))*\*+\/)|(?:\/\/.*))/";

        
$filename $this->fileDir//file directory
        
$file fopen($filename"r");
        
$length filesize($filename);
        
$comments fread($file$length);

        
preg_match_all($expr$comments$matchs); //capture the comments

        
foreach($matchs[0] as $id => $variable){
            
$comments str_replace($variable,'',$comments); // replace the scores of empty
        
}
        
fclose($file);
        
$file fopen($filename"w");
        
$file fwrite($file$comments);
    }
?>

joe dot scylla at gmail dot com (2009-10-14 08:23:04)

If you're using a bytecode cache like eAccelerator this method will return FALSE even if there is a properly formatted Docblock. It looks like the information required by this method gets stripped out by the bytecode cache.

易百教程