2016-11-23 2 views
0

를 교체하지 않고 PHP 배열에 항목을 추가하고 세션에 추가하여 위시리스트에 새 항목을 추가하고 싶지만 그들은 기존 항목은 쇼핑 카트를 구축하고있는 이전 항목

이 무엇 인 교체 야해 난 시도했지만

[] operator not supported for strings 

이의 오류를 반환 한 것은 코드입니다 :

public function addItem($value, (int)$id){ 
    if(isset($_SESSION[$value])){ 

     $_SESSION[$value][] = array(); 
     array_push($_SESSION[$value],array(
      'id'=>$id 
     )); 
     return true; 
    } 
} 

$ 값의 값은 문자열

입니다

는 또한 This yii link에 따랐다도 This link에 여전히 그것을 내가 이전에

있었다 어떤

public function addItem($value, $id){ 
    if(isset($_SESSION[$value])){ 

     $_SESSION[$value] = array(); 
     array_push($_SESSION[$value],array(
      'id'=>$id 
     )); 
     return true; 
    } 
} 

이 항목을 추가하지만, 대신이 방법을 수행하여 동일한 오류

을 얻고 무엇을 작업을 변경해야합니까?

+0

$ 값은 무엇입니까? UR 주식? 왜냐하면 나는 단지'$ _SESSION [ 'items'] [] = Array ($ id, $ value); ' – KikiTheOne

+1

_'을 사용하기를 제안하기 때문에 그 항목을 추가하지만 이전에 " 새 빈 배열을 $ _SESSION [$ value]에 매번 할당하십시오. // $ _SESSION은 이미 배열이고 PHP에서 "하위 배열"을 초기화 할 필요가 없으므로 자동으로 생성됩니다. 그래서 당신은 단순히 $ _SESSION [$ value] [] = '새로운 아이템';을 사용하여 새로운 아이템을 배열에 넣을 수 있습니다.'$ _SESSION [$ value] = array()'를 이용한 초기화는 필요 없습니다. – CBroe

답변

1

문자열에 대해 짧은 배열 푸시 구문을 사용하려고하면이 오류가 발생합니다. demo here.

$_SESSION[$value]은 문자열입니다. 그래서 당신은 같은 것을 사용할 수 없습니다 $_SESSION[$value][]= 's'

그래서 처음으로 $_SESSION[$value]을 사용할 때 그것을 배열로 만듭니다. 문자열이 아닙니다. 그러면 다음과 같이 쓸 수 있습니다. $_SESSION[$value][]= 's';

관련 문제