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

PHP 7.4.3命名空间类返回类型不匹配(TypeError),mixed类型仍报错

解决思路
  • 核心原因:PHP 7.4不支持mixed作为原生返回类型声明,mixed是PHP 8.0才正式引入的类型。在PHP 7.4中,编译器会将mixed识别为一个需要在当前命名空间(jc21\Movies)下查找的类名,找不到对应类时就会抛出类型不匹配的错误。
  • 方案1:升级PHP版本
    将PHP版本升级到8.0及以上,原生支持mixed类型声明,无需修改代码即可解决问题。这也是最贴合项目设计意图的方案。
  • 方案2:修改方法返回类型
    若无法升级PHP版本,可修改Movie类的jsonSerialize方法:
    • 直接移除: mixed的返回类型声明,保留注释中的@return mixed即可;
    • 或者根据$this->data的实际类型,明确声明返回类型(比如实际返回数组就写: array)。修改后的示例代码:
      // 移除返回类型声明
      public function jsonSerialize()
      {
          return $this->data;
      }
      
      // 或明确返回数组类型
      public function jsonSerialize(): array
      {
          return $this->data;
      }
      
  • 额外提示:检查该plex-api项目的官方文档或composer.json,确认其要求的PHP版本。如果项目本身是为PHP 8+开发的,升级PHP版本能避免后续更多的版本兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:27:22