我有一个如下数组。
在这里,我得到的数组key
就像[_aDeviceTokens:protected] => Array
。
$array= ApnsPHP_Message Object
(
[_bAutoAdjustLongPayload:protected] => 1
[_aDeviceTokens:protected] => Array
(
[0] => BD74940085E1579333E93B7D172CF82F5A3E0B17617D904107CD77573C42CEC9
)
[_sText:protected] => test
[_nBadge:protected] => 1
[_sSound:protected] => default
[_sCategory:protected] =>
[_bContentAvailable:protected] =>
[_aCustomProperties:protected] => Array
(
[channel_id] => 1xxxx8
[detail_id] => 1
)
[_nExpiryValue:protected] => 1500
[_mCustomIdentifier:protected] =>
)
由于数组具有对象值,所以我试图获取该键的值,
$array->_aDeviceTokens:protected[0]
但这给我一个错误。
那么我如何获得这些数组键的值?
答案 0 :(得分:1)
似乎您正在尝试访问被视为数组的对象的受保护属性。
在此处查看代码:https://github.com/immobiliare/ApnsPHP/blob/master/ApnsPHP/Message.php
这些属性有一个可公开访问的“获取器”。
ApnsPHP_Message类的摘录:
public function getCustomIdentifier()
{
return $this->_mCustomIdentifier;
}
因此,不要像以前那样尝试访问这些属性,而要使用相应的getter。
$custom_identifier = $message->getCustomIdentifier();
答案 1 :(得分:0)
将对象转换为数组。
$array = json_decode(json_encode($array),true);
现在,您可以像这样从 $ array 获得价值
$array['_aDeviceTokens:protected'][0]