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

是否存在实现PHP普通函数与箭头函数互转的VSCode代码片段?

PHP(Laravel)箭头函数与普通闭包互转的VSCode代码片段

写PHP或者Laravel代码时,常会碰到这种需求:调试阶段要把简洁的箭头函数转成普通闭包,方便加dd()这类调试代码或者扩展逻辑;调试完成后,又要把冗余的普通闭包转回箭头函数精简代码。找了一圈没找到现成的VSCode代码片段,自己写了两个,分享给大家。

1. 箭头函数转普通闭包

转换示例

// 转换前
collect($someArray)->map(fn($item) => $item->value);

// 转换后
collect($someArray)->map(function ($item) {
  dd($item);
  return $item->value;
});

VSCode代码片段

把这段代码添加到你的PHP用户代码片段(php.json)中:

{
  "Arrow Function to Regular Closure": {
    "prefix": "arrowToClosure",
    "body": [
      "function ($1) {",
      "  dd($1);",
      "  return $2;",
      "}"
    ],
    "description": "Convert PHP arrow function to regular closure with debug line"
  }
}

使用方式:选中箭头函数里的fn($item) => $item->value部分,输入前缀arrowToClosure或绑定快捷键触发片段,自动替换成带调试代码的普通闭包。

2. 普通闭包转箭头函数

转换示例

// 转换前
collect($someArray)->map(function ($item) {
  // dd($item);
  return $item->correct_value;
});

// 转换后
collect($someArray)->map(fn($item) => $item->correct_value);

VSCode代码片段

同样添加到php.json中:

{
  "Regular Closure to Arrow Function": {
    "prefix": "closureToArrow",
    "body": [
      "fn($1) => $2"
    ],
    "description": "Convert PHP regular closure to arrow function"
  }
}

使用方式:清理普通闭包内的注释、冗余代码后,选中function ($item) { ... return $item->correct_value; }部分,触发片段即可转换为简洁的箭头函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 21:12:34