升级 Codeigniter 后,我收到此消息
无法访问受保护的属性 MY_Loader::$_ci_cached_vars
我知道这个属性现在受到保护所以我改变了
else if (isset($CI->load->_ci_cached_vars[$key]))
{
$val = $CI->load->_ci_cached_vars[$key];
}
至
if (isset($CI->load->get_var($key)))
{
$val = $CI->load->get_var($key);
}
但后来我明白了
不能在写上下文中使用方法返回值
这是get_var
方法
/**
* Get Variable
*
* Check if a variable is set and retrieve it.
*
* @param array
* @return void
*/
public function get_var($key)
{
return isset($this->_ci_cached_vars[$key]) ? $this->_ci_cached_vars[$key] : NULL;
}
我能做什么,就用
if ($CI->load->get_var($key)) != null) {
$val = $CI->load->get_var($key);
}
没有 isset?我想检查是否不是 NULL,因为get_var
方法返回 null
还是 if ($CI->load->get_var($key))) {
检查足够?