在codeigniter中我有一个名为integration的库,其中在top声明中我有一个公共静态变量,它保存一个数组:
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::$socialLogin
以及Invalid argument supplied for foreach()
。如何从控制器中的库访问公共静态变量?
答案 0 :(得分:1)
必须使用Scope Resolution Operator(即双冒号)访问静态属性。为此,您将直接使用类名,而不是CI对象的实例。
$providers = Integration::$socialLogin;
foreach ($providers as $provider) {
...
}