如何从Kohana的会话对象中获取数组?

时间:2011-06-27 16:24:16

标签: php arrays session kohana kohana-3

我正在使用Kohana 3.0,我需要从Session对象获取数组。

例如:

$session = Session::instance();

$session->set(
    'myArray'
    array(
        'key1' => 'foo',
        'key2' => 'bar'
    )
);

// How to get specific array element?

我认为这会有效,但它会返回null

$session->get('myArray.key2');

思考和思考之后(哈哈哈!)我想出来了......

$myArray = $session->get('myArray');
$key1 = $myArray['key1'];

可以吗?还有更好的办法吗?

P.S。当array dereferencing可用时......将使用它! =]

$key1 = $session->get('myArray')['key1']; // Lets hope that this work!

1 个答案:

答案 0 :(得分:3)

  1. 检索基本var并使用标准 Arr帮手

     Arr::get($session->get('myArray', array()), 'key1');
    
  2. 将会话数据用作数组:

     $data = & $session->as_array();
     $key1 = Arr::path($data, 'myArray.key1');
     $data['myArray']['key2'] = 'foo'; // also you can set data