2015-10-02 5 views
1

Я просто ищу толчок в правильном направлении здесь. Я пытаюсь создать ассоциированный массив, используя сеанс. Цель состоит в том, что, когда пользователь добавляет элемент в корзину, элемент и количество добавляются в массив. Я получаю ошибку «Ошибка синтаксиса: ошибка синтаксиса, неожиданная ошибка T_DOUBLE_ARROW» в строке 13. Я думаю, что я просто ошибаюсь.PHP, Ассоциативные массивы с сеансами

<?php 
$action = $_GET['action']; 
$itemID = $_GET['itemID']; 
$qty = $_GET['quantity']; 
$msg; 
if (!isset($_SESSION['cart'])) { 
    $_SESSION['cart']['itemID'] = ('123' => 0, '456' => 0, '589' => 0, '101' => 0); 
} 
$cart = $_SESSION['cart']; 
if ($action == 'add') { 
/* if (!in_array($cart, $itemID) { // Add item to array 
     $cart[$itemID] 
     //array_push($cart, $itemID => $qty); 
    } 
    else { // Increase quantity */ 
     $_SESSION['cart'][$itemID] = $q; 
     $v = $q + $qty; 
     $_SESSION['cart'][$itemID] = $v; 
// } 
    $msg = $qty.' of item # '.$itemID.' has been added to your cart.'; 
} 
else { // remove from cart 
    unset($_SESSION['cart'][$itemID]); 
    $msg = $qty.' of item # '.$itemID.' has been removed to your cart.'; 
} 
echo $msg; ?> 

Ошибка возникает в первом случае (! Исеть ($ SESSION [ «телега»]) заявление о создании.

я получаю сообщение об ошибке, когда у меня был array_push включен, а также, но я не Вспомните, что это было.

В принципе, эта функция - массив SESSION создается, когда пользователь добавляет товар в корзину (всегда количество в это время). Когда элемент добавлен, номер и количество элементов добавляются в массив. Добавьте еще один элемент, добавьте его, добавьте тот же элемент, количество увеличится на единицу. Удалите элемент .. так далее и т. Д.

Надеюсь, вы получите эту идею. У меня есть кости, написанные и я на стадии тестирования/устранения неполадок. Как я уже сказал, я думаю, что создаю массив неправильно. Я хотел бы создать массив пустым и добавлять элементы по мере необходимости, но я попробовал несколько разных способов, пытаясь хотя бы заставить его работать, причем тот, который показан выше, является самым последним. Опять же, очевидно, что подход к ассоциативному массиву SESSION ошибочен.

Любой совет будет рад! Заранее спасибо.

+0

не делать забудьте использовать session_start() в начале вашего скрипта. http://php.net/manual/en/function.session-start.php –

+0

и использовать квадратные скобки для открытия и закрытия массивов: ["foo" => "bar", "A" => "a"] –

ответ

0

Вы упускаете Array

if (!isset($_SESSION['cart'])) { 
    $_SESSION['cart']['itemID'] = Array('123' => 0, '456' => 0, '589' => 0, '101' => 0); 
} 
+0

Diego, Rocky & Cfreak - Спасибо всем! Я знал, что я пропустил что-то простое. Это заставило меня пройти мимо ошибки, чтобы я мог двигаться вперед с моей отладкой. : - / – mallorz

3

Похоже, у вас есть ошибка в строке 7 изменить его на

$_SESSION['cart']['itemID'] = array('123' => 0, '456' => 0, '589' => 0, '101' => 0); 

вы также можете проверить, как определить array