Press "Enter" to skip to content

记录一个环境从 PHP5.5 升级到 PHP7.1 之后遇到的bug

bug描述

前些天,收到一个无法导出 excel 的 bug,查看日志后发现项目报了一个Fatal error

Fatal error: 'break' not in the 'loop' or 'switch' context

报错的文件位置在 PHPExcel\Calculation\Functions.php 581 行
查看代码后发现该行所在的代码块里 return 后面接了个 break

} elseif(is_array($value)) {
        return 64;
        break; // 这行报的错
} elseif(is_string($value)) {

果断把 break 删掉,测试了一下发现功能就正常了

原因

因为公司不久前将 PHP 环境从 5.5 升级成 7.1
猜测是因为升级的原因,因为这个功能上线很久了,一直没有出现过这个bug

求证

今天在本地环境里测试了一下果然是这个原因
首先在本地环境里用 php5.6 的环境执行了以下代码



可以正常输出 0
下面切换成 php7.1 的环境执行


出现 Fatal error 错误

总结

以后看到这个错误,可以先找找是不是这个问题

发表评论

邮箱地址不会被公开。 必填项已用*标注