我为WooCommerce编写了一个运输插件,当我尝试获取受保护密钥([key:protected])的值时,它会返回空的。我们如何从数组或对象中获取受保护密钥的值?
具体来说,在woocommerce_shipping_init的calculate_shipping函数中,它传递$package,这是一个数组,其中还包含一些对象,并且某些对象键受到保护。所以$package看起来像这样(这是一个简化版本):
Array
(
[contents] => Array
(
[abc123] => Array
(
[quantity] => 1
[data] => WC_Product_Simple Object
(
[object_type:protected] => product
[data:protected] => Array
(
[name] => Carnal Seed CD and Study Guide - Oil Merchant Series
[slug] => carnal-seed-cd-and-study-guide-oil-merchant-series
)
)
)
)
)
因此,当我尝试获取 [name] 或 [slug] 时,我得到 [data:protected] 对象的空值(因此 [name] 和 [slug] 不存在)。例如:
$data = $package['contents']['abc123']['data']->data; // $data returns empty
那么,我们如何从数组或对象中获取受保护密钥的值呢?
梦里花落0921
森林海