如何在静态方法中访问类变量

时间:2017-12-29 10:48:33

标签: php static static-methods

我收到错误Undefined class constant 'app_id'。我正在尝试访问getFBInstance()方法中声明的InitialSetUp类的变量,并且这个方法是从静态方法check_user()调用的。我猜这个中的self关键字{ {1}}指的是Facebook类,它解释了错误发生的原因,但是如何访问new Facebook\Facebook([])中的app_id和其他变量

getFBInstance()

2 个答案:

答案 0 :(得分:0)

由于$app_id不是静态的,因此需要实例化IntialSetUp类。我还建议你研究创建get functions

public function getFBInstance() {

    $initialSetup = new InitialSetUp();

    return new Facebook\Facebook([
        'app_id' => $initialSetup->app_id, // here i am not able to access InitialSetUp' app id 
        'app_secret' => $initialSetup->app_secret,
        'default_graph_version' => $initialSetup->default_graph_version,
    ]);
}

self关键字指的是使用它的类的元素以及静态属性和方法。

答案 1 :(得分:0)

使用$ this

调用类中的变量
 public function getFBInstance() {

            return new Facebook\Facebook([
              'app_id' => $this->app_id, // here i am not able to access InitialSetUp' app id 
                'app_secret' => $this->app_secret,
                'default_graph_version' => $this->default_graph_version,
     ]);
    }