如何读取一个类的数组对象

18 浏览
0 Comments

如何读取一个类的数组对象

大家好,我有以下数组:

Classes\Form_Record Object
(
    [sent_data:protected] => Array
        (
            [cw6hwgw] => 11
            [ezlkp6m] => 11
        )
    [fields:protected] => Array
        (
            [cw6hwgw] => Array
                (...

我想要读取 `cw6hwgw` 和 `ezlkp6m` 的值。

在PHP中,我需要使用什么方法来获得结果?

我们尝试了 `[sent_data][0]`,但不起作用。

0
0 Comments

问题的出现原因是因为需要将对象转换为数组才能读取。解决方法是使用强制类型转换将对象转换为数组,然后遍历数组来读取数据。

以下是一个示例代码:

$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));` 来获取对象变量的索引。这样就可以直接读取对象的属性值了。

0