2011-06-27 65 views
0

我使用Kohana 3.0,我需要從Session對象中獲取數組。如何從Kohana中的會話對象中獲取數組?

例如:

$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! 

回答

3
  1. 檢索基本var和使用標準 編曲輔助

    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