我正在尝试使用其api密钥从Chargebee获取客户详细信息,响应位于关联数组中。我尝试使用以下代码获取值 $ all 包含响应
foreach($all as $entry){
$customer[] = $entry->customer();
$card = $entry->card();
}
print_r($ customer);
//try 1
foreach($customer as $value){
print_r($value->allowed:protected]);
}
//try 2
foreach($customer as $key->$value){
print_r($value->allowed:protected]);
}
我的数组采用以下方式
Array
(
[0] => ChargeBee_Customer Object
(
[allowed:protected] => Array(
[0] => id
[1] => firstName
[2] => lastName
[3] => email
[4] => phone
[5] => company
)
[_values:protected] => Array
( [first_name] => ashutosh
[email] => ashutosheve@gmail.com)
[_data:protected] => Array
(
[firstName] => ashutosh
[email] => ashutosheve@gmail.com
[autoCollection] => on
[netTermDays] => 0
)
)}
不断抛出错误
PHP Parse error: syntax error, unexpected ':', expecting ',' or ')'
如何从此类数组获取值,请帮助。
答案 0 :(得分:0)
由于您要获取的属性具有受保护的访问权限,因此无法直接执行。但是,PHP有两种方法可以做到这一点。
一种是将对象转换为数组,另一种是使用ReflectionClass
$reflect = new ReflectionClass('ChargeBee_Customer'); // create reflection class
$p = $reflect->getProperty('allowed'); // get protected property allowed
$p->setAccessible(true); // set it accessible
foreach ($customer as $value){
var_dump($p->getValue($value)); //get property value on the object using reflection
}
答案 1 :(得分:0)
Chargebee php库具有访问每种资源属性的简单方法。
您可以如下所示访问客户的属性:
$customer = $all->customer();
print($customer->id);
print($customer->firstName);
类似地,您可以访问其他资源属性。
您还可以将整个客户详细信息作为json字符串获取:
$json = $customer->toJson();
print($json);