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

PHP 7.1中出现Function name must be a string错误的原因咨询

错误原因分析

这个致命错误出现在代码的第31行return $this->$res['event']();,核心问题是**$res['event']的值不是有效的字符串类型**,导致PHP无法识别要调用的方法名。

具体触发场景包括:

  • bff::route()方法返回的$res['event']可能是null、数字、数组等非字符串类型,你的判断逻辑只处理了$res['event'] === false的情况,没有覆盖其他非字符串的无效值。
  • 存在$res数组中根本没有'event'键的可能,这时$res['event']会被解析为null,直接触发错误。
  • 第三个路由规则'blog/(page\d+\/?'的正则表达式不完整,缺少闭合的),这可能导致bff::route()解析路由时异常,返回不符合预期的$res['event']值。
验证与修复建议
  • 先确认bff::route()的实际返回值:在$res = bff::route(...);后添加var_dump($res); exit;,查看$res的结构和event字段的类型、具体值。
  • 完善判断逻辑,覆盖更多无效情况:
    if (!isset($res['event']) || !is_string($res['event']) || !method_exists($this, $res['event'])) {
        $res['event'] = 'listing';
    }
    
  • 修复不完整的正则表达式:
    'blog/(page\d+\/?)' => 'blog/listing/page=$1',
    

内容的提问来源于stack exchange,提问作者Владимир

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 06:14:56