You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何在PHP中获取Coinbase API返回的私有属性值?

解决Coinbase PHP SDK中Money对象私有属性无法访问的问题

嘿,我之前在用Coinbase PHP SDK开发时也碰到过一模一样的问题!别慌,这是因为SDK里的Coinbase\Wallet\Value\Money类采用了面向对象的封装设计,私有属性不能直接访问,但官方已经给我们提供了安全合规的访问方式。

正确姿势:使用类提供的公共Getter方法

这个Money类专门暴露了两个公共方法来获取内部的私有属性,你只需要把直接访问属性的代码替换成:

// 获取金额数值
$var1 = $btcusdsellprice->getAmount();
// 获取货币类型
$currency = $btcusdsellprice->getCurrency();

为什么不能直接访问私有属性?

SDK的设计遵循了封装原则,把属性设为私有是为了避免外部随意修改内部数据,保证数据的一致性和安全性。对应的Getter方法是官方推荐的访问方式,你可以参考这个类的核心结构:

namespace Coinbase\Wallet\Value;

class Money
{
    private $amount;
    private $currency;

    public function __construct($amount, $currency)
    {
        // 属性初始化逻辑
    }

    public function getAmount()
    {
        return $this->amount;
    }

    public function getCurrency()
    {
        return $this->currency;
    }

    // 其他辅助方法
}

额外技巧:转换成数组(可选)

如果你需要一次性获取所有属性并以数组形式处理,这个类还提供了toArray()方法:

$moneyData = $btcusdsellprice->toArray();
$amount = $moneyData['amount'];
$currency = $moneyData['currency'];

不过更推荐使用Getter方法,这是SDK的标准用法,后续版本更新也不会受影响。

⚠️ 注意:别尝试用反射等方式强制访问私有属性,这会破坏封装性,而且SDK版本迭代后很可能导致代码失效。

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

火山引擎 最新活动