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

如何忽略PHP中end()函数传入NULL值时的警告?

问题分析与解决方案

核心问题

你的try-catch没生效的原因是:end() expects parameter 1 to be array, null given属于PHP警告级别错误,默认情况下这类错误不会抛出可被try-catch捕获的Exception对象,所以你的异常捕获逻辑根本没触发。

修正方案

不要依赖异常捕获处理这类数组不存在的情况,应该做前置有效性检查,确保传给end()的参数是合法数组。以下是优化后的代码:

// 逐层获取财务数据,不存在则设为空数组
$financialData = $date_Firma_Raw["data"]["company"]["financialData"] ?? [];

// 检查数据是否为有效数组且非空
if (is_array($financialData) && !empty($financialData)) {
    // 取最后一项的营收,不存在则设为"-"
    $date_Firma[4] = end($financialData)["turnover"] ?? "-";
} else {
    $date_Firma[4] = "-";
}

代码说明

  • 使用??空合并运算符处理数组键可能不存在的情况,避免未定义索引的警告;
  • 先验证financialData是数组且非空,再调用end(),从根源避免参数错误警告;
  • 即使最后一项的turnover不存在,也通过??直接设为"-",无需额外的empty()判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 16:20:43