如何在PhpStorm中显示PHP函数参数的可选取值而非仅参数类型
解决步骤
问题根因
PhpStorm默认不会直接识别自定义的#[ExpectedValues]属性,该属性是JetBrains官方提供的专用注解,需要搭配对应依赖才能生效,也可以用原生支持的PHPDoc语法实现同等效果。
方法一:使用官方注解包(完全兼容你写的属性语法)
- 先通过Composer安装PhpStorm官方注解依赖:
composer require --dev jetbrains/phpstorm-attributes - 在函数所在的文件顶部引入注解类:
use JetBrains\PhpStorm\ExpectedValues; - 你已经写好的参数注解不需要修改,引入后重启PhpStorm即可在调用函数时看到可选值提示。
方法二:无额外依赖的PHPDoc方案
如果不想安装第三方包,可以直接修改函数的PHPDoc注解,PhpStorm原生支持识别字面量联合类型的提示:
/** * @param string $tag 可选值:'full'|'view'|'edit'|'add'|'delete'|'*' * @param string $tag_type 可选值:'all'|'activities'|'grades'|'orders'|'people'|'schools'|'users'|'team_classes'|'coaches'|'team_parents'|'organization' * @return int * * 默认不传参数时,会判断当前用户是否为超级管理员 */ public function isAdmin(string $tag = '*', string $tag_type = ''){ // 原有业务逻辑保持不变 }
补充说明
- 如果修改后仍然不显示提示,可尝试清空PhpStorm缓存重启:操作路径为
File > Invalidate Caches...,勾选清空缓存选项后重启即可。 - 你原有代码中
$tag的默认值是空字符串,修改注解后默认值改为了'*',建议统一逻辑,避免提示和实际运行逻辑冲突。
内容的提问来源于stack exchange,提问作者Robert Bryan Davis
相关产品推荐
相关产品推荐

