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

PHP Curl调用API时两类错误响应的统一处理方案问询

统一处理两种错误响应的解决方案

这个问题的核心是你碰到了两种不同结构的错误响应:一种的message是字符串(卡号无效场景),另一种是关联数组(字段缺失场景),而你的遍历代码只适配了数组类型的错误,所以字符串类型的错误没法正常展示。

咱们可以通过判断错误信息的类型,分别处理两种场景,实现统一展示:

// 先从Session中取出错误信息
$errorMsg = $_SESSION['error_message'];

// 判断错误信息的类型
if (is_array($errorMsg)) {
    // 处理字段缺失的数组类型错误,沿用你原来的遍历逻辑
    foreach ($errorMsg as $x => $x_value) {
        echo ucfirst($x) . "&nbsp;" . $x_value . "<br>";
    }
} else {
    // 处理卡号无效的字符串类型错误,直接输出完整错误信息
    echo $errorMsg . "<br>";
}

如果想要让字符串类型的错误展示格式和数组错误更统一(比如都带上类似"Message"的前缀),可以调整else分支的代码:

} else {
    // 统一格式,添加前缀后输出
    echo "Message&nbsp;" . $errorMsg . "<br>";
}

为什么原代码无法处理字符串类型错误?

当$_SESSION['error_message']是字符串时,foreach会尝试把字符串拆分成单个字符来遍历,这显然不是你需要的效果;而直接echo $_SESSION['error_message']能正常显示,是因为它直接输出了整个字符串内容,没有做遍历处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:12:59