此代码可以帮助您以数组格式获取 docBlock 的内容,从 @ 符号开始,并忽略 (*) 星号。
class Home {
/**
* 此方法加载主页
* @param int $id 用户 ID
* @throws \Exception 如果用户 ID 不存在
* @return void
*/
public function index( $id)
{
#...您的代码在这里
}
}
$object = new Home();
// 获取注释字符串
$comment_string= (new ReflectionClass($object))->getMethod('index')->getdoccomment();
// 定义用于字符串匹配的正则表达式模式
$pattern = "#(@[a-zA-Z]+\s*[a-zA-Z0-9, ()_].*)#";
// 在提供的字符串上执行正则表达式
preg_match_all($pattern, $comment_string, $matches, PREG_PATTERN_ORDER);
echo "<pre>"; print_r($matches);
// 这将输出
Array
(
[0] => Array
(
[0] => @param int $id 用户 ID
[1] => @throws \Exception 如果用户 ID 不存在
[2] => @return void
)
[1] => Array
(
[0] => @param int $id 用户 ID
[1] => @throws \Exception 如果用户 ID 不存在
[2] => @return void
)
)
// 您之后可以通过索引访问特定的字符串值