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

通过Bitnami XAMPP安装Magento后出现each()函数弃用错误,如何解决?

解决Magento安装后的each()函数废弃警告及错误显示问题

嘿,这俩问题其实都是Magento和PHP版本兼容、默认配置导致的常见问题,咱一步步来搞定:

一、处理each()函数废弃的警告

这个警告的核心原因是:PHP 7.2及以上版本已经彻底废弃了each()函数,而你当前使用的colinmollenhour/cache-backend-file缓存库版本太老,还在调用这个废弃函数。有两个靠谱的解决办法:

方法1:升级缓存后端包(推荐)

直接用Composer升级到修复了兼容性问题的版本,步骤如下:

  1. 打开命令提示符,进入你的Magento根目录:
    cd C:\xampp\apps\magento\htdocs
    
  2. 运行升级命令:
    composer require colinmollenhour/cache-backend-file:^1.4.1
    
    这个版本已经把each()替换成了PHP7.2+兼容的写法,升级完成后警告就会消失。

方法2:手动修改文件(临时应急方案)

如果暂时没法用Composer升级,你可以直接修改报错的文件:

  1. 打开文件C:\xampp\apps\magento\htdocs\vendor\colinmollenhour\cache-backend-file\File.php
  2. 定位到第81行的each()调用,通常代码类似:
    list($key, $value) = each($this->_options);
    
  3. 把这段代码替换成foreach循环的写法:
    foreach ($this->_options as $key => $value) {
        // 原来后续使用$key和$value的逻辑放到这里
        // 注意根据上下文调整循环结构,避免重复执行
    }
    

二、开启详细错误显示,查看具体问题

页面显示的安全提示是因为Magento默认在生产模式下隐藏了错误详情,你可以通过以下两种方式开启调试:

方法1:修改错误显示配置

  1. 找到Magento根目录下的errors/local.xml.sample文件,复制一份并重命名为errors/local.xml
  2. 打开新的local.xml文件,找到<action>hide</action>这一行,把hide改成print:
    <action>print</action>
    
    保存后刷新页面,就能看到完整的错误详情了。

方法2:切换到开发者模式(更适合调试)

  1. 打开Magento根目录下的app/etc/env.php文件
  2. 找到'MAGE_MODE' => 'production'这一行,把production改成developer:
    'MAGE_MODE' => 'developer',
    
    如果没有这一行,直接把这段代码添加到数组中即可。开发者模式下会自动显示详细错误,还能提供更多调试信息,方便排查潜在问题。

注意事项

  • 修改任何文件前,建议先备份原文件,避免改错导致更严重的问题
  • 如果Composer升级失败,检查是否有依赖冲突,或者确认你的PHP版本符合Magento的要求(Magento 2.3+需要PHP 7.2及以上,2.4+需要PHP 7.4及以上)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:16:19