PHP 对象数组 - 尝试提取密钥

fig*_*r20 5 php arrays woocommerce

我收到这样的 WooCommerce 订单产品元数据...

$item_meta_data = $item_values->get_meta_data();
Run Code Online (Sandbox Code Playgroud)

这给了我以下...

WC_Meta_Data Object
(
    [current_data:protected] => Array
        (
            [id] => 8795
            [key] => Option 1
            [value] => Yes
        )

    [data:protected] => Array
        (
            [id] => 8795
            [key] => Option 1
            [value] => Yes
        )

)
Run Code Online (Sandbox Code Playgroud)

我对返回的数据感到困惑,我想检查是否设置了选项 1,我尝试像这样获取密钥...

foreach($item_meta_data as $meta_data_item) {
    echo $meta_data_item['key'];
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为它不是数组,有人有什么想法吗?

Lug*_*aue 5

WC_Meta_Data类中有一个神奇的方法,名为__get.

这样您就可以访问受保护的属性。例如:

$item_meta_data->key
Run Code Online (Sandbox Code Playgroud)