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)source/app/member/member.php 第 49 行:
expiry: 300 这种 参数名: 值 的写法是 PHP 8.0+ 才支持,PHP 7.4 会直接报:unexpected ':' expecting ')'。
本次补丁:
【增量补丁】(直接覆盖即可,不需要撤回 现有的 0115 合并补丁包)。
修复内容(最小等价替换)
把命名参数改为位置参数(兼容 Discuz 常见签名:authcode($string,$op,$key,$expiry)):
- authcode(..., 'ENCODE', expiry: 300)
- → authcode(..., 'ENCODE', '', 300)