downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

ReflectionClass::getEndLine> <ReflectionClass::getDefaultProperties
[edit] Last updated: Fri, 07 Jun 2013

view this page in

ReflectionClass::getDocComment

(PHP 5 >= 5.1.0)

ReflectionClass::getDocCommentドキュメントコメントを取得する

説明

public string ReflectionClass::getDocComment ( void )

クラスのドキュメントコメントを取得します。

警告

この関数は、 現在のところ詳細な情報はありません。引数のリストのみが 記述されています。

パラメータ

この関数にはパラメータはありません。

返り値

ドキュメントコメントが存在すればそれを返します。存在しなければ FALSE を返します。

例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
*/"

参考



add a note add a note User Contributed Notes ReflectionClass::getDocComment - [3 notes]
up
2
uramihsayibok, gmail, com
2 years ago
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($doccomment, 3, -2) ?> will get you what's inside. A call to trim() after is recommended.
up
2
joe dot scylla at gmail dot com
3 years ago
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.
up
0
leosouza at hotmail dot com
3 years ago
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);
    }
?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites