我有一个从API返回的PHP对象。下面是dd($token):
OAuth2AccessToken {#559 ▼
-accessTokenKey: "eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxn8F2X3MBCZYY1g7Do66LIK"
-tokenType: "bearer"
-refresh_token: "Q01156b975259zYyAN03aS8lf6YfRcYFK26w2xCvPu75zf0B9F"
-accessTokenExpiresAt: 1559257067
-refreshTokenExpiresAt: 1567975300
-accessTokenValidationPeriod: 3600
-refreshTokenValidationPeriod: 8751833
-clientID: "Q06uUceuP2dpIJVmmqbWztlZ73dtb9Qd2shjbiKhkGt7lsimR"
-clientSecret: "RD0fS7xiRNsmbwSBBXvgU3wsqtyNPy63DfoGq2"
-realmID: "1385384240"
-baseURL: "https://quickbooks.api.intuit.com/"
}
如何将密钥"accessTokenKey“放入变量中?
我试过了:
$token->accessTokenKey;
或
$token['accessTokenKey'];
我收到错误“无法访问私有属性”
发布于 2019-05-31 06:30:19
在这种情况下,是一个私有属性。此属性不能从Model/Class外部调用,因为它是私有的,只能由Class访问。你需要使用一些函数来获得它。也许你可以使用$token->getAccessToken()。我应该让你学习更多关于OOP概念的知识。在Laravel中非常重要。
public scope
可使该变量/函数从对象的任何位置、其他类和实例中可用。
当您希望您的变量/函数仅在其自己的类中可见时,则为private scope
。
当您想要使变量/函数在扩展当前类的所有类中可见时,请使用protected scope
。
发布于 2019-05-31 07:36:10
您可以使用\ReflectionClass
类
public function get_private_attribute_of($object, $property)
{
$reflection = new \ReflectionClass($object);
$property = $reflection->getProperty($property);
$property->setAccessible(true);
return $property->getValue($object);
}
用法:
get_private_attribute_of($token, 'accessTokenKey');
或者现在可以使用dd(get_class_methods($object))
命名所有可用的方法并选择所需的方法
https://stackoverflow.com/questions/56386215
复制相似问题