2011-03-31 10 views
1

네임 스페이스를 만든 후 변수에 값을 추가하려고하면 변수가 특정 값을 가지지 만 네임 스페이스가있는 세션은 아닙니다. 그러나, 변수를 만들면 배열에 대한 키가되고 변수에 값을 추가하면 세션에 저장됩니다. 내 포인트 설명하기 위해 : 세션에Zend_Session_Namespace가 예상대로 작동하지 않습니다.

public $submitUser; 
public function init() 
{ 
    $this->submitUser = new Zend_Session_Namespace('submitUser'); 
    Zend_Session::rememberMe(60*60*24*7); 
} 

public function selectUserAccount ($username) 
{   
    $returnArray = array(
     'name' => 'Man', 
     'surname' => 'With a surname', 
     'username' => $username 
    ); 
    $this->submitUser->user = $returnArray; 
} 

삽입을

'submitUser' => 
    array 
     'user' => 
     array 
      'name' => string 'Man' (length=3) 
      'surname' => string 'With a Surname' (length=14) 
      'username' => string 'jpeiseni' (length=8) 

그러나

세션

이 작은 귀찮은의 변수를 설정하지 않습니다

public function selectUserAccount ($username) 
{   
    $returnArray = array(
     'name' => 'Man', 
     'surname' => 'With a Surname', 
     'username' => $username 
    ); 
    $this->submitUser = $returnArray; 
} 
, 나는 아마도 함께 살 수 있지만 namaspace에 값을 허용하지 않는 이유가 있는지 알고 싶습니다. 그것 자체에 대한, 또는 내가 뭔가를 놓친 건가요?

답변

4

예,이 말이 무엇을 효과적으로하는 일은 이것이다 :

$this->submitUser = new Zend_Session_Namespace('submitUser'); 
$this->submitUser = $returnArray; 

그래서 당신은 Zend_Session_Namespace의 인스턴스를 만든 다음 당신은 완전히 다른 변수로 교체하십시오.

(이 코드가 무엇인지에 따라) 더 나을 거 같은 아마 뭔가 :

$this->submit = new Zend_Session_Namespace('submit'); 
$this->submit->user = $returnArray; 
+0

아 이놈이 ... 내가 그래서 침지을 건물, 그 밑에 간단한 PHP를 보지 않았다. 그건 의미가 있습니다. 결국 나는'$ this-> submitUser = new Zend_Session_Namespace ('submitUser');와 같이 갔다. $ this-> submitUser = $ this-> submitUser-> submitUser;'작동하지만 여전히 원본보다 짧습니다. –

+0

'$ this-> submitUser = new Zend_Session_Namespace ('submitUser')를 의미합니까? $ this-> submitUser = $ this-> submitUser-> user;' – jimy

+0

사실, 같은 것입니다. 방금 배열 키'user'를 사용하고 있는데, 나는'submitUser'를 다시 사용하고 있습니다. –

3

이 시도 :

public function selectUserAccount ($username) 
{ 
    $returnArray = array(
     'name' => 'Man', 
     'surname' => 'With a Surname', 
     'username' => $username 
    ); 
    $this->submitUser->applySet('array_merge', $returnArray); 
} 
관련 문제