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

Laravel中laminas-diactoros依赖出现PHP语法错误(fn保留字)求助

解决PHP7.4下laminas-diactoros的fn语法错误问题

laminas-diactoros从2.17版本开始使用了PHP8.0支持的箭头函数(fn()),但PHP7.4中fn是保留字,无法作为函数名使用,因此出现语法错误。结合你使用Laravel 6.20.44的环境,以下是可行的解决办法:

方案1:指定安装兼容PHP7.4的版本

直接安装最后一批完全兼容PHP7.4的2.16.x系列版本,执行命令:

composer require laminas/laminas-diactoros:^2.16.0 --update-with-dependencies

--update-with-dependencies参数会同步更新相关依赖,避免出现版本冲突。

方案2:修改composer.json约束后更新

  1. 打开项目根目录的composer.json,在require节点添加或修改版本约束:
"laminas/laminas-diactoros": "^2.16.0"
  1. 执行更新命令:
composer update laminas/laminas-diactoros

Composer会自动安装符合约束的最高兼容版本,避开使用箭头函数的2.17+版本。

方案3:临时修改报错文件(应急用)

如果暂时无法通过Composer更新,可手动修改报错文件:
打开/route/to/MyProject/vendor/laminas/laminas-diactoros/src/functions/marshal_headers_from_sapi.php,将第29行的箭头函数替换为普通匿名函数:
原代码示例:

$filter = fn($header) => strtolower($header);

替换为:

$filter = function($header) {
    return strtolower($header);
};

注意:此方法会在执行composer install或composer update后被覆盖,仅作为临时应急方案,长期建议使用前两种版本锁定的方法。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 05:58:16