将项添加到php数组而不替换先前的项

时间:2016-11-23 09:06:16

标签: php arrays

建立购物车并希望通过将新商品添加到会话中来将新商品添加到愿望清单但是他们不应该替换现有商品

这是我尝试但是返回错误

[] 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;
    }
}

$ value的值是一个字符串

我也跟随This yii linkThis link,但仍然遇到同样的错误

通过这样做

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

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

添加项目,但替换以前的任何内容

我需要改变它的工作方式

1 个答案:

答案 0 :(得分:1)

尝试在字符串上使用短数组推送语法时出现此错误。 demo here.

<android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" android:fitsSystemWindows="true" app:elevation="0dp"> <android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="match_parent" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:elevation="0dp" /> </android.support.design.widget.AppBarLayout> 是一个字符串。所以你不能使用像$_SESSION[$value]

这样的东西

因此,当您第一次使用$_SESSION[$value][]= 's'时,请将其设为数组。不是字符串。然后您可以使用$_SESSION[$value]