如何打印 "Protected" return 值? (PHP)
How do I print a "Protected" return value? (PHP)
我正在使用 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?
利用ReflectionClass
function accessProtected($obj, $prop) {
$reflection = new ReflectionClass($obj);
$property = $reflection->getProperty($prop);
$property->setAccessible(true);
return $property->getValue($obj);
}
只是为了不让这个问题无人回答。通常,如果一个变量受到保护,那是因为你不应该得到它(至少不使用 可以 做其他事情的方法,而不仅仅是返回变量值 - 这给出了开发人员可以非常灵活地添加代码,而无需更改所有获取变量的地方,在这种情况下他们不能这样做,因为 google 无法控制您的代码)。
也就是说,the Money class can be found here。
如您所见,有一种方法可以通过访问 public 来获取值,因此您 是 允许的(并且很可能被推荐)调用它并且它只是 returns 值:
/**
* @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)
我正在使用 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?
利用ReflectionClass
function accessProtected($obj, $prop) {
$reflection = new ReflectionClass($obj);
$property = $reflection->getProperty($prop);
$property->setAccessible(true);
return $property->getValue($obj);
}
只是为了不让这个问题无人回答。通常,如果一个变量受到保护,那是因为你不应该得到它(至少不使用 可以 做其他事情的方法,而不仅仅是返回变量值 - 这给出了开发人员可以非常灵活地添加代码,而无需更改所有获取变量的地方,在这种情况下他们不能这样做,因为 google 无法控制您的代码)。
也就是说,the Money class can be found here。
如您所见,有一种方法可以通过访问 public 来获取值,因此您 是 允许的(并且很可能被推荐)调用它并且它只是 returns 值:
/**
* @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)