【问题标题】:Access array variable in session (CodeIgniter)在会话中访问数组变量(CodeIgniter)
【发布时间】:2011-01-21 15:59:33
【问题描述】:

我有一个名为 config 的数组。我正在尝试从会话中的数组中回显一个变量。

我试过了:

echo $this->session->userdata('config['item']'); 

但它不起作用。我的语法有什么问题?我已经 print_r'd 我的会话并且项目在配置数组中。我也试过:

echo $this->session->userdata("config['item']");

这次我没有收到任何错误,但也没有数据。

【问题讨论】:

    标签: codeigniter


    【解决方案1】:

    如果 config 是一个数组。 item 是你想从配置中获取的字符串名称然后

    echo $this->session->userdata($config['item']);
    

    echo $_SESSION[$config['item']];
    

    如果 config 是 session 中的一个数组,你应该先得到它。

    $tmp = $this->session->userdata('config');
    echo $tmp['item'];
    

    echo $_SESSION['config']['item'] 
    

    对不起我的英语。

    【讨论】:

    • 为什么我每次做$abc = $this->session->userdata('datauser'); echo $abc['ID_NUM'];时都会得到未定义的索引
    【解决方案2】:

    如果要使用会话数组,请使用变量,而不是函数:

    echo $this->session->userdata['user_data']['item'];
    

    如果你想写:

    $this->session->userdata['user_data']['item'] = 'value';
    $this->session->userdata['other_data']['other'] = 'value2';
    $this->session->sess_write();
    

    这使您可以像使用 $_SESION['user_data']['avatar'] = $avatar 一样编辑数组中的值,“仅”多行一行并且仅使用 CI 库。

    【讨论】:

      【解决方案3】:

      总是转义你的字符串,它应该是这样的:

      echo $this->session->userdata('config[\'item\']'); 
      

      【讨论】:

      • 是的,我意识到我遇到了引用问题。但这不会产生任何数据,即使我可以 print_r 它。
      • 那么你必须看到这个codeigniter.com/user_guide/libraries/config.html 如何访问你的配置变量
      • 配置数组在我的用户数据中。两者会不会发生冲突?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-08
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      • 2014-06-10
      • 2015-07-21
      • 1970-01-01
      相关资源
      最近更新 更多