【发布时间】:2021-12-13 12:28:21
【问题描述】:
我有以下标准类对象数组:
var_dump($order);
array (size=2)
'raw' =>
object(stdClass)[6]
public 'actionCodeDescription' => string 'processing.error.203' (length=20)
public 'params' =>
object(stdClass)[7]
public 'respCode_desc' => string 'Transaction rejected' (length=83)
我正在尝试检索并显示“params' {'respCode_desc : "transact rejected'}”
例如,如果我要求
actionCodeDescription我只需要echo $order->message();
public function message()
{
return $this->raw->actionCodeDescription;
}
我尝试过的:$this->raw->params['0']->respCode_desc; 它没有用
我会得到
试图获取非对象的属性“respCode_desc”或
尝试访问 null 类型值的数组偏移量
任何想法我做错了什么
我如何检查respCode_desc 是否不为空以便显示
actionCodeDescription?
这是我的代码
class Order
{
public $raw;
function __construct($obj)
{
$this->raw = $obj;
}
public function __toString()
{
return json_encode($this->raw, JSON_PRETTY_PRINT);
}
【问题讨论】:
-
“它不起作用” - 这是什么意思?会发生什么?
-
我不明白底部的 json_encode 调用与此有什么关系,或者您将对象转换为数组的顶部代码;但你的错误是
params不是数组,所以没有params['0'] -
为什么
params['0'],你的var_dump表明params是一个stdClassobject? -
是的抱歉错误的表述它是stdClass对象,我不是为了获取特定的对象键值而转换数组
标签: php arrays json nested stdclass