从类中的库(代码点火器控制器)访问公共静态变量


access a public static variable from a library in a class (codeigniter controller)

在codeigniter中,我有一个名为集成的库,其中在顶部声明中我有一个公共静态变量,其中包含一个数组:

public static $socialLogin = array(
    'twitter',
    'facebook',
    'google',
    'yahoo'
);

我正在尝试在控制器中访问它,并通过$this->load->library('integration');调用控制器构造函数中的库 然后我尝试在以下代码片段中访问它:

        foreach ($this->integration->socialLogin as $provider):
            if (!empty($_SESSION['jigowatt'][$provider])) {
                $this->_social_login($provider);
                break;
            }
        endforeach;

并获得Undefined property: Integration::$socialLoginInvalid argument supplied for foreach().如何从控制器中的库访问公共静态变量?

必须使用范围解析运算符(也称为双冒号)访问静态属性。为此,您将直接使用类名,而不是 CI 对象的实例。

$providers = Integration::$socialLogin;
foreach ($providers as $provider) {
    ... 
}