PhpStorm默认仅检查字符串字面量、注释及PHPDoc中的自然语言文本拼写,不检查变量名、函数名、数组键、JSON key等;需手动启用对应文件类型拼写检查并确认未被技术词典忽略。
PhpStorm 会检查哪些地方的英文拼写
默认只检查字符串字面量、注释、类/方法名里的自然语言文本(比如 public function calculatetotalamount() 中的 calculatetotalamount 不被当作英文单词,但注释里写 // calculate the total amount 就会标红 amount——如果它不在词典里)。
它不检查变量名、函数名、关键字、路径、JSON key、HTML 属性值(除非你手动启用 HTML 拼写检查),也不检查已知技术术语(如 cache、auth、env 等会被自动忽略)。
- 常见错误现象:
recieve被标黄但没报错;occured显示波浪线但光标悬停无提示——说明当前文件类型未启用拼写检查,或该单词被加进了自定义词典 - 使用场景:写 PHPDoc、Blade 模板中的提示文字、配置数组里的描述字段(如
['label' => 'User name'])、测试用例里的断言消息 - 性能影响:开启后对大项目扫描略慢(尤其首次加载),但后续编辑基本无感知;关闭
Settings > Editor > Inspections > Proofreading > Typo可彻底禁用
怎么让 PhpStorm 标出 seperate 这种典型拼写错误
关键不是“打开拼写检查”,而是确保它作用在你要检查的上下文上。默认它只对注释和字符串生效,而很多用户误以为变量名或数组键也会被查。
- 确认已启用:
Settings > Editor > Inspections > Proofreading > Typo打勾,Severity 设为Typo(黄色波浪线)或Typo: Weak Warning(灰色) - 检查当前文件类型是否支持:右下角看文件状态栏,如果是
Plain Text或PHP,拼写检查默认开启;但如果是JSON或YAML,需手动在Settings > Editor > Inspections > Proofreading下勾选对应语言的拼写检查项 - 排除干扰:如果
seperate没被标出,先右键该词 →Spelling > Save 'seperate' to dictionary,再撤销这步(按 Ctrl+Z),强制触发重检;有时缓存会导致漏判
为什么 config/app.php 里的 'name' => 'My App' 不报错
因为 PhpStorm 默认把 PHP 数组键值对中的字符串归为“代码结构”,而非“自然语言文本”。它认为 'name' 是配置标识符,不是要拼写的单词。
- 解决办法只有两个:
— 把字符串包进注释里(比如在'name' => 'My App', // app name后加注释,name就会被检查)
— 或者改用Settings > Editor > Inspections > Proofreading > Typo > Options,勾选Check strings in code(但会误报大量技术缩写,比如jwt、url、id) - 兼容性注意:勾选
Check strings in code后,所有双引号/单引号内的字符串都会被扫,包括 SQL 片段、正则表达式、路径(如'/api/v1/users'),容易产生干扰波浪线 - 更稳妥的做法:只对特定文件类型启用——比如在
Settings > Editor > File Types中,把Blade.php或.md加入Spellcheckable file types,而不是全局开
自定义词典加词后仍被标红怎么办
加词操作本身没问题,但 PhpStorm 的词典分“项目级”和“全局级”,且缓存不会实时刷新。
- 确认加的是对的词典:右键拼错词 →
Spelling > Save 'xxx' to dictionary,弹窗里选Project dictionary(推荐),别选IDE dictionary(否则换项目就失效) - 检查词典路径:
Settings > Editor > Natural Languages > Dictionaries,点开项目词典文件(通常是.idea/dictionaries/yourname.xml),确认里面真有那行<word>seperate</word> - 重启索引:有时候词典更新了但缓存没清,执行
File > Invalidate Caches and Restart > Invalidate and Restart;不重启的话,Ctrl+Shift+O(快速文件搜索)输Reindex找到Reindex Project也能触发
最常被忽略的一点:拼写检查只对标记为“自然语言”的 token 生效,而 PhpStorm 对不同上下文的语言识别是静态的——它不会因为你写了 // this is a config for user auth 就突然开始检查 auth,因为 auth 已被内置为技术词。真正要防的,是那些看起来像英文、实则拼错又没进词典的词,比如 definately、manuever、adress。这类词得靠人工加一次,后面才稳定。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










