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

如何让仅支持PHP 8的Google2FA代码兼容PHP 7?

PHP7兼容修改方案

错误原因

  1. 命名参数语法不支持:get:、set:这种键值对传参是PHP 8.0新增特性,PHP 7全版本都不支持。
  2. 箭头函数兼容性限制:fn()箭头函数是PHP 7.4引入的,若要兼容PHP 7.0-7.3,必须替换为传统匿名函数。

修改后的代码

protected function google2faSecret(): Attribute
{
    return new Attribute(
        function ($value) {
            return decrypt($value);
        },
        function ($value) {
            return encrypt($value);
        }
    );
}

注意事项

  • 需确保Attribute类的构造函数参数顺序为$get在前、$set在后,若实际参数顺序不同,请对应调整匿名函数的传参顺序。
  • 如果decrypt和encrypt是当前类的成员方法,需在调用时添加$this->,例如return $this->decrypt($value);。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 17:11:07