2011-01-21 29 views
11

Yapılandırma adlı bir dizim var. Oturumdaki diziden bir değişken yankılamaya çalışıyorum.Oturumda dizi değişkeni (CodeIgniter)

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

ama çalışmıyor:

denedim. Sözümdeki yazımın nesi var? Oturumu print_r'd ettik ve öğeler yapılandırma dizisinde. Ben de denedim:

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

Bu sefer hata alıyorum, ancak veri yok.

cevap

19

yapılandırma dizisi ise. Ve madde daha sonra yapılandırmasındaki almak istediğini dize adıdır

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

veya

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

yapılandırma önce onu almalısınız oturumu içinde bir dizi ise

.

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

ya benim İngiliz Maalesef

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

. Eğer değişken kullanın, oturum dizisi kullanmak istiyorsanız

+0

İngilizcen iyi. Bu hile yaptı. Teşekkürler. – sehummel

+0

güzel açıklama kodlarınız bana çok yardımcı oldu – Yasitha

+0

neden yapıyorum ne zaman undefined endeksi aldım $ $ = $ this-> session-> userdata ('datauser'); echo $ abc ['ID_NUM']; ' –

0

daima olması gerektiği bu şekilde sizin dize kaçış:

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

Evet, bir alıntı sorunum olduğunu anladım. Fakat bu, print_r yazabilsem bile veri vermiyor. – sehummel

+0

daha sonra bu http://codeigniter.com/user_guide/libraries/config.html adresini görmelisiniz. Ur config vars –

+0

Yapılandırma dizisi kullanıcı sayfamda. İkisi çarpışabilir mi? – sehummel

9

değil işlevi: Bu dizideki değerleri sadece düzenlemesine izin veren

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

:

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

Eğer yazmak istiyorsanız $ _SESION ['user_data'] ['avatar'] = $ avatar ile yaptığınız gibi 'sadece' bir ekstra satır ve sadece CI kütüphanesi kullanıyorsunuz.