Php codeigniter无法访问受保护的属性MY\u Loader::$\u ci\u cached\u vars

Php codeigniter无法访问受保护的属性MY\u Loader::$\u ci\u cached\u vars,php,codeigniter,Php,Codeigniter,升级Codeigniter后,我收到以下消息 无法访问受保护的属性MY\u Loader:$\u ci\u cached\u vars 我知道此属性现在受到保护,因此我更改 else if (isset($CI->load->_ci_cached_vars[$key])) { $val = $CI->load->_ci_cached_vars[$key]; } 到 但是我得到了 无法在写上下文中使用方法返回值 这是get\u var方法

升级Codeigniter后,我收到以下消息

无法访问受保护的属性MY\u Loader:$\u ci\u cached\u vars

我知道此属性现在受到保护,因此我更改

else if (isset($CI->load->_ci_cached_vars[$key]))
    {
        $val = $CI->load->_ci_cached_vars[$key];
    }

但是我得到了

无法在写上下文中使用方法返回值

这是
get\u 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);
    }
if ($CI->load->get_var($key)) != null)  {
        $val = $CI->load->get_var($key);
    }
没有isset?我想检查是否不为NULL,因为
get\u var
method返回NULL


或者
if($CI->load->get_var($key)){
检查是否足够?

您不能在函数上使用
isset

i、 e.
$CI->load->get_var($key)
将始终返回“something”-但“something”是什么取决于

因此,您是正确的-下面的代码将实现您的目标。如果函数返回“null”-则isset已失败。如果函数返回其他内容(除了null)-则您将获得有效的返回

if ($CI->load->get_var($key)) != null)  {
        $val = $CI->load->get_var($key);
    }