PHP 文档块中的@template 注解是什么意思?
What does the annotation @template mean in PHP doc blocks?
我可以在 FakerPHP/Faker package, and I'm not aware what does @template
mean? you can find it in the package's main branch on this line
中看到这个 PHPDoc 块
/**
* @template T of Extension\Extension
*
* @param class-string<T> $id
*
* @throws ContainerExceptionInterface
* @throws Extension\ExtensionNotFound
*
* @return T
*/
@template 注释涉及一个称为泛型的概念,PHP 目前不存在该概念,但它是一种动态描述参数或 return 类型内容的方式在实例化 class 或调用方法之前未知。
对于 PHP 具体而言,here is an article describing the doc blocks themselves and how to use them。
对于您引用的代码,模板指定 T 将是 Extension\Extension 的一个实例。 $id 参数将是 T 的 class 名称,@return 表示该方法将 return T 的一个实例。
使用该方法类似于 $faker->ext(MyExtension::class),这将 return MyExtension 的一个实例。
我可以在 FakerPHP/Faker package, and I'm not aware what does @template
mean? you can find it in the package's main branch on this line
/**
* @template T of Extension\Extension
*
* @param class-string<T> $id
*
* @throws ContainerExceptionInterface
* @throws Extension\ExtensionNotFound
*
* @return T
*/
@template 注释涉及一个称为泛型的概念,PHP 目前不存在该概念,但它是一种动态描述参数或 return 类型内容的方式在实例化 class 或调用方法之前未知。
对于 PHP 具体而言,here is an article describing the doc blocks themselves and how to use them。
对于您引用的代码,模板指定 T 将是 Extension\Extension 的一个实例。 $id 参数将是 T 的 class 名称,@return 表示该方法将 return T 的一个实例。
使用该方法类似于 $faker->ext(MyExtension::class),这将 return MyExtension 的一个实例。