不幸的是,不支持继承的文档注释。
<?php
class A {
/**
* @var string
*/
public string $prop = 'A';
}
class B extends A {
public string $prop = 'B';
}
$prop = new ReflectionProperty('B', 'prop');
var_dump($prop->getDocComment());
?>
结果为 FALSE
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
ReflectionProperty::getDocComment — 获取属性文档注释
此函数没有参数。
如果存在则返回文档注释,否则返回 false
。
示例 #1 ReflectionProperty::getDocComment() 示例
<?php
class Str
{
/**
* @var int 字符串的长度
*/
public $length = 5;
}
$prop = new ReflectionProperty('Str', 'length');
var_dump($prop->getDocComment());
?>
上面的示例将输出类似于以下内容
string(53) "/** * @var int The length of the string */"
示例 #2 多个属性声明
如果多个属性声明之前只有一个文档注释,则该文档注释仅引用第一个属性。
<?php
class Foo
{
/** @var string */
public $a, $b;
}
$class = new \ReflectionClass('Foo');
foreach ($class->getProperties() as $property) {
echo $property->getName() . ': ' . var_export($property->getDocComment(), true) . PHP_EOL;
}
?>
上面的示例将输出
a: '/** @var string */' b: false