PHPStorm默认折叠class、function、if、for、while、namespace、docblock等结构,但纯{}语句块不折叠;需在设置中启用PHP相关折叠项并重启生效。

PHPStorm 默认折叠哪些代码块
PHPStorm 会自动对 class、function、if、for、while、namespace、docblock 等结构启用折叠,但具体行为取决于语言注入设置和代码风格。不是所有大括号块都默认可折叠——比如纯 {} 包裹的语句块(无关键字引导)通常不会被识别为可折叠区域。
手动开启/关闭某类 PHP 折叠项
进入 Settings / Preferences → Editor → General → Code Folding,展开 PHP 节点,勾选或取消勾选以下常用项:
-
Class declarations:控制class、interface、trait的折叠 -
Function declarations:影响function和method(含static、private等修饰符) -
Comments:折叠 PHPDoc(/** */)和行内注释(//)需单独勾选 -
Import statements:折叠use语句组(注意:单个use不会折叠,必须是连续多行) -
Array initializer:对长数组字面量(如['a' => 1, 'b' => 2])启用折叠
⚠️ 修改后需重启编辑器或重新打开文件才生效部分设置(尤其是 Array initializer)。
用快捷键快速操作折叠状态
折叠功能依赖光标位置,不是全局开关:
立即学习“PHP免费学习笔记(深入)”;
- 折叠当前代码块:
Ctrl + Shift + -(Windows/Linux)或Cmd + Shift + -(macOS) - 展开当前代码块:
Ctrl + Shift + +或Cmd + Shift + + - 折叠全部:
Ctrl + Shift + NumPad -(需数字小键盘) - 展开全部:
Ctrl + Shift + NumPad + - 只折叠注释和 import:
Ctrl + Alt + T→ 选择Fold Comments and Headers
注意:NumPad 快捷键在笔记本上可能失效,建议外接键盘或改用菜单操作(Code → Folding → …)。
自定义折叠区域(@fold、//region)
PHPStorm 支持用特殊注释标记自定义折叠范围,比依赖语法结构更灵活:
//region 数据处理逻辑
$data = array_filter($input, function($v) { return $v > 0; });
$result = array_map(fn($x) => $x * 2, $data);
//endregion也可用 PHPDoc 风格:
/**
* @fold 数据校验流程
*/
if ($user->isGuest()) {
throw new PermissionException();
}
// @endfold这类标记需确保启用了 Region comments 折叠项(在 Code Folding 设置中),且注意大小写敏感(@fold 有效,@FOLD 无效)。
实际项目中,过度依赖自定义折叠容易让团队成员困惑;优先用语义清晰的函数拆分,再辅以折叠控制。











