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

VSCode中使用phpfmt格式化时PHP变长参数的空格问题求助

解决phpfmt合并变长参数类型与...标记的问题

原始代码:

function ( int | float...$numbers ): int | float {
    return array_sum( $numbers );
};

保存后phpfmt会自动把类型和...合并成无空格的形式,严重降低可读性。当前你的phpfmt配置:

"editor.formatOnSave": true,
"phpfmt.passes": ["AlignDoubleArrow", "SpaceAroundParentheses"],
"phpfmt.psr2": false,

可行解决办法

  1. 添加空格格式化规则
    在phpfmt.passes中加入SpaceBeforeTypeHint规则,强制在类型和...之间保留空格。修改后的配置:
"editor.formatOnSave": true,
"phpfmt.passes": ["AlignDoubleArrow", "SpaceAroundParentheses", "SpaceBeforeTypeHint"],
"phpfmt.psr2": false,
  1. 禁用合并规则(如果存在)
    部分phpfmt版本内置了MergeTypeHintAndEllipsis规则,专门负责合并类型和...,直接禁用它即可:
"editor.formatOnSave": true,
"phpfmt.passes": ["AlignDoubleArrow", "SpaceAroundParentheses"],
"phpfmt.disable_passes": ["MergeTypeHintAndEllipsis"],
"phpfmt.psr2": false,
  1. 更新phpfmt版本
    如果是旧版phpfmt,可能对PHP 8+的联合类型+变长参数的语法支持不完善,更新到最新版大概率能解决兼容性问题。

修改配置后重启VSCode,再保存代码验证格式是否符合预期。

内容的提问来源于stack exchange,提问作者Lord_Shiva_Mahadev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 00:22:01