我正在使用Google AdWords API,以获取给定关键字的每次点击费用(CPC)数据。当我运行此代码时:
$averageCPC = $data[AttributeType::AVERAGE_CPC]->getValue();
print_r($averageCPC);
我看到以下内容:
Google\AdsApi\AdWords\v201702\cm\Money Object
(
[microAmount:protected] => 754133
[ComparableValueType:protected] =>
[ComparableValue.Type] => Money
)
如何只打印数字754133?
答案 0 :(得分:0)
利用ReflectionClass
function accessProtected($obj, $prop) {
$reflection = new ReflectionClass($obj);
$property = $reflection->getProperty($prop);
$property->setAccessible(true);
return $property->getValue($obj);
}
答案 1 :(得分:0)
只是为了不让这个没有答案。通常,如果变量受到保护,那么因为你不应该得到它(至少不使用可以做其他事情的方法而不仅仅是返回变量值 - 这为开发人员添加代码提供了很大的灵活性,而无需更改获取变量的所有位置,在这种情况下,谷歌不会控制您的代码。
那就是the Money class can be found here。
正如您所看到的那样,通过访问 public 来获取价值的方法,以便 允许(并且很可能建议)调用 public 它只返回值:
/**
* @return int
*/
public function getMicroAmount()
{
return $this->microAmount;
}
因此答案相当简单;打电话给方法。
$averageCPC = $data[AttributeType::AVERAGE_CPC]->getValue();
$microAmount = $averageCPC->getMicroAmount();
print_r($averageCPC);
var_dump($microAmount); // int(754133)