如何读取一个类的数组对象
问题的出现原因是因为需要将对象转换为数组才能读取。解决方法是使用强制类型转换将对象转换为数组,然后遍历数组来读取数据。
以下是一个示例代码:
$my_obj = (object) ['sent_data:protected' => ['cw6hwgw' => 11, 'ezlkp6m' => 11 ]]; echo gettype($my_obj)."\n\n"; $to_array_ = (array) $my_obj; foreach($to_array_['sent_data:protected'] as $k=>$v){ echo "{$k} = $v \n"; }
当将对象转换为数组后,打印出的结果将会是以下格式:
Array ( [* sent_data] => Array ( [cw6hwgw] => 11 [ezlkp6m] => 11 ) )
但仍然无法直接读取该数组,原因可能是在打印时 `*` 或者前面的空格导致无效。可以使用 `print_r ([ * sent_data])` 来尝试打印,但此方法仍然无法读取数据。
为了解决这个问题,可以使用 `print_r(get_object_vars($YOUR_OBJECT_VAR));` 来获取对象变量的索引。这样就可以直接读取对象的属性值了。