在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::$socialLogin
和Invalid argument supplied for foreach()
.如何从控制器中的库访问公共静态变量?
必须使用范围解析运算符(也称为双冒号)访问静态属性。为此,您将直接使用类名,而不是 CI 对象的实例。
$providers = Integration::$socialLogin;
foreach ($providers as $provider) {
...
}