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

PHP中访问stdClass对象属性问题求助:如何获取余额对象中的amount值

解决PHP中获取嵌套stdClass对象属性的问题

嘿,我来帮你捋清楚这个问题~先看你给出的var_dump($balances)结果,就能找到核心问题:amount属性并不是直接在根balances对象里,而是嵌套在waiting_funds、transferred、available这三个子对象中,这就是你之前几种访问方式失败的原因。

为什么之前的方法不行?

  • 直接访问$balances->amount:根对象根本没有这个属性,自然拿不到值
  • 用数组方式$balances['amount']:$balances是stdClass对象,不是数组,不能用数组下标访问
  • 你的foreach逻辑本身没问题,但根对象里还有object这个字符串属性,遍历到它时会因为没有amount属性报错,导致你以为遍历无效

正确的访问方式

1. 获取单个特定类型的金额

如果你想拿到某一个特定类型的金额(比如待结算资金),直接通过层级访问即可:

// 获取待结算资金的amount
$waitingAmount = $balances->waiting_funds->amount;
var_dump($waitingAmount); // 输出 int 185160

// 同理获取已转账和可用金额
$transferredAmount = $balances->transferred->amount;
$availableAmount = $balances->available->amount;

2. 遍历所有类型的金额

如果要遍历所有包含amount的子对象,建议先判断属性是否存在,避免报错:

foreach ($balances as $balanceType => $balanceObj) {
    // 只处理包含amount属性的子对象
    if (property_exists($balanceObj, 'amount')) {
        echo "{$balanceType}: {$balanceObj->amount}\n";
    }
}

运行后会输出:

waiting_funds: 185160
transferred: 0
available: 0

完整示例代码

把这些整合到你的调用逻辑里,就是这样:

$balances = $integration->getBalances('re_ckyxi43rghnk9tc51zxg0b');

if ($balances !== null) {
    // 单个获取
    echo "待结算资金:{$balances->waiting_funds->amount}\n";
    echo "已转账资金:{$balances->transferred->amount}\n";
    echo "可用资金:{$balances->available->amount}\n";

    // 遍历输出
    echo "\n所有资金明细:\n";
    foreach ($balances as $type => $item) {
        if (isset($item->amount)) {
            echo "- {$type}: {$item->amount}\n";
        }
    }
} else {
    echo "获取余额失败:{$integration->error}";
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 17:42:28