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

PHP嵌套stdClass对象属性读取输出与空值校验方法(含JSON编解码)

错误原因

  • $this->raw->params是stdClass对象而非数组,你使用['0']数组下标访问不存在的数组层,属于类型调用错误,所以触发非对象属性访问、空值数组偏移的报错。
  • 从你提供的var_dump结构来看,respCode_desc是params对象的直接公有属性,不需要加数组下标即可访问。

实现代码

直接修改Order类的message()方法即可实现非空判断和 fallback 逻辑:

public function message()
{
    // 兼容低版本PHP的写法
    if (isset($this->raw->params) && !empty($this->raw->params->respCode_desc)) {
        return $this->raw->params->respCode_desc;
    }
    return $this->raw->actionCodeDescription;
}

如果你的PHP版本≥7.0,可以用null合并运算符简化写法:

public function message()
{
    return $this->raw->params->respCode_desc ?? $this->raw->actionCodeDescription;
}

如果需要兜底不存在actionCodeDescription的极端场景,可以再加一层默认值:

public function message()
{
    return $this->raw->params->respCode_desc ?? $this->raw->actionCodeDescription ?? '未知错误';
}

修改后直接调用echo $order->message();就可以按需求输出对应值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:36:04