如何读取MessageBird web响应的所有字段 含受保护的id属性
问题原因
你遇到报错是因为MessageBird\Objects\Message类中的id属性是protected保护类型,PHP不允许类外部直接访问保护属性。
最优解决方案:调用官方SDK内置的Getter方法
MessageBird官方SDK为所有保护属性提供了公开的读取方法,直接调用getId()即可获取id值:
echo $MessageResult->getId();
同理,另外两个保护属性也可以用对应方法读取:
- 读取
href:$MessageResult->getHref() - 读取
createdDatetime:$MessageResult->getCreatedDatetime()
其他可选方案(不推荐优先使用)
如果有特殊场景无法使用内置Getter,可以用反射方式强制读取保护属性:
// 初始化反射对象 $reflection = new ReflectionObject($MessageResult); // 获取id属性的反射实例 $idProperty = $reflection->getProperty('id'); // 设置允许访问保护属性 $idProperty->setAccessible(true); // 读取id值 $id = $idProperty->getValue($MessageResult); echo $id;
内容的提问来源于stack exchange,提问作者sumonci
相关产品推荐
相关产品推荐

