首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Laravel -从对象获取值

Laravel -从对象获取值
EN

Stack Overflow用户
提问于 2019-05-31 06:05:16
回答 2查看 118关注 0票数 0

我有一个从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'];

我收到错误“无法访问私有属性”

EN

回答 2

Stack Overflow用户

发布于 2019-05-31 06:30:19

在这种情况下,是一个私有属性。此属性不能从Model/Class外部调用,因为它是私有的,只能由Class访问。你需要使用一些函数来获得它。也许你可以使用$token->getAccessToken()。我应该让你学习更多关于OOP概念的知识。在Laravel中非常重要。

public scope可使该变量/函数从对象的任何位置、其他类和实例中可用。

当您希望您的变量/函数仅在其自己的类中可见时,则为private scope

当您想要使变量/函数在扩展当前类的所有类中可见时,请使用protected scope

票数 1
EN

Stack Overflow用户

发布于 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))命名所有可用的方法并选择所需的方法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56386215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档