You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:36:04