调用以实例作为参数的php函数

时间:2016-08-07 20:55:02

标签: php facebook laravel-5

好的,我的问题是,我有一个我正在使用的Facebook回拨功能。回调函数使用实例作为参数facebookCallBack(LaravelFacebookSdk $fb)

这个功能很棒,我在我的auth控制器中使用它,但是现在我想在同一个控制器中重用这个函数,比如$this>facebookReusableCallBack(LaravelFacebookSdk $fb)

我遇到了问题,我收到此错误facebookReusableCallBack()必须是SammyK\LaravelFacebookSdk\LaravelFacebookSdk的实例,没有给出。

这是我的代码示例:

public function facebookCallBack(LaravelFacebookSdk $fb) {
        $this->facebookReusableCallBack();
}

public function facebookReusableCallBack() {
    //All my code here
}

如何在我的控制器中重用此功能?

我试过了:

public function facebookCallBack(LaravelFacebookSdk $fb) {
        $this->facebookReusableCallBack(LaravelFacebookSdk $fb);
}

但参数不作为实例传递?

1 个答案:

答案 0 :(得分:1)

传递变量时,不需要定义变量的类型。

方法定义:

public function facebookReusableCallBack(LaravelFacebookSdk $fb) {
      //some code
}

在另一种方法中执行:

function myMethod() {
  $var = new LaravelFacebookSdk();
  $this->facebookReusableCallBack($var);
}

您所做的是在函数定义中定义变量的类型(好)以强制类型。但是这些仅在定义中需要。

所以对于你的明确例子:

public function facebookCallBack(LaravelFacebookSdk $fb) {
   $this->facebookReusableCallBack($fb);
}

因为$ fb在调用facebookCallBack时必须是LaravelFacebookSdk的一个实例,所以对于facebookReusableCallBack来说没问题。