去评论
dz插件网

Discuz X5.0 · PHP7.x / MySQL5.7 兼容补丁修复解决:expiry: 300 这种 参数名: 值 报错:unexpected ':' expecting ')'问题

惧愁人
2026/01/16 17:16:44
Discuz X5.0 · PHP7.x / MySQL5.7 兼容补丁修复解决:expiry: 300 这种 参数名: 值 报错:unexpected ':' expecting ')'问题:

这是 **PHP 8 的“命名参数(Named Arguments)”**语法在 PHP 7.4 下触发的编译期致命错误。
可能会引起未登录状态点击登录弹窗不出来的问题,报错位置:
source/app/member/member.php 第 49 行:
authcode(..., 'ENCODE', expiry: 300)

expiry: 300 这种 参数名: 值 的写法是 PHP 8.0+ 才支持,PHP 7.4 会直接报:unexpected ':' expecting ')'。

本次补丁:
【增量补丁】(直接覆盖即可,不需要撤回 现有的 0115 合并补丁包)。

修复内容(最小等价替换)
把命名参数改为位置参数(兼容 Discuz 常见签名:authcode($string,$op,$key,$expiry)):