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

Drupal7 SMTP模块7.x-1.7在PHP8下each()函数报错的修复问询

Drupal SMTP 7.x-1.7 兼容PHP 8的修复方案

问题根源

Drupal SMTP 7.x-1.7版本的smtp.transport.inc文件中使用了PHP 7.2已弃用、PHP 8已移除的each()函数,服务器升级到PHP 8后触发报错,涉及两处代码:

  1. 第393行:while (list(, $line) = @each($lines)) {
  2. 第423行:while (list(, $line_out) = @each($lines_out)) {

修复方案

直接将两处each()遍历逻辑替换为PHP全版本兼容的foreach循环:

  • 第393行替换为:
    foreach ($lines as $line) {
    
  • 第423行替换为:
    foreach ($lines_out as $line_out) {
    

补充说明

foreach是PHP官方推荐的数组遍历方式,完全匹配原each()的遍历逻辑,同时无需保留原代码中的@错误抑制符——foreach在数组遍历完成后不会触发警告,代码更简洁可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:31:06