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

PHP 7.2.0起each()函数已废弃,如何修改代码替代该函数?

解决PHP each()函数废弃后的代码替换问题

嘿,我来帮你搞定这个each()函数废弃的问题!你尝试用foreach替代each()的思路完全是对的,但为啥没生效?大概率是因为你还在使用过时的$HTTP_POST_VARS超全局变量——这个变量在PHP新版本里已经不推荐使用,甚至可能默认被禁用了。

正确的修改步骤:

  • 第一步:把$HTTP_POST_VARS替换成官方推荐的$_POST超全局变量,这是PHP处理POST数据的标准方式,兼容性更好。
  • 第二步:保留你用foreach替代each()的写法,这是废弃each()后的标准替代方案。
  • 第三步:一定要加上HTML转义处理,避免XSS安全漏洞——直接输出用户提交的内容是很危险的,用htmlspecialchars()对$key和$val进行转义。

修改后的完整代码:

if (!empty($_POST)) {
    foreach ($_POST as $key => $val) {
        $safeKey = htmlspecialchars($key, ENT_QUOTES);
        $safeVal = htmlspecialchars($val, ENT_QUOTES);
        print "<input type=\"hidden\" name=\"$safeKey\" value=\"$safeVal\">\n";
    }
}

额外说明:

  • 用!empty($_POST)替代count($_POST)更简洁,而且能准确判断是否有POST数据。
  • ENT_QUOTES参数确保单引号和双引号都被转义,适配你HTML里的双引号属性写法。
  • $HTTP_POST_VARS是PHP4时代的产物,现在完全可以用$_POST替代,它在所有支持PHP5及以上的环境中都能正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 22:18:12