我想模仿这种调用方法,该怎么写?

public function exchangeComponentAccessToken(){
        $values['config']['app_id'] = 'xxx';
        $values['config']['secret'] = 'xxx';
        $values['config']['verify_ticket'] = 'xxxx';
        $app = new Container($values); //这里会生成一个对象方法
        
        $AccessToken = new AccessToken($app);

    }
//$this->app 这个是等于我上面赋值过去的
return [
            'component_appid' => $this->app['config']['app_id'],
            'component_appsecret' => $this->app['config']['secret'],
            //这里我不想改代码,因为这是个框架,我想按照他去赋值,但是我上面该怎么赋值呢
            'component_verify_ticket' => $this->app['verify_ticket']->getTicket(),
];
阅读 1.6k
1 个回答

首先你的调用是$this->app['verify_ticket']->getTicket(),就表明了$this->app['verify_ticket']储存的必须是一个实例化的对象。不能是一个闭包或函数。

可以用一个类来实现。

class A
{
    public function getTicket()
    {
        return 'aaa';
    }
}

$c = new A();


$data['verify_ticket'] = $c;

echo $c->getTicket();

要么直接用匿名方法,但是就不能使用->这种方式调用了:

$data['verify_ticket']['getTicket'] = function(){
        return 'aaa';
    };
//调用

$data['verify_ticket']['getTicket']();

你想要的是这样吗?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题