Я просто ищу толчок в правильном направлении здесь. Я пытаюсь создать ассоциированный массив, используя сеанс. Цель состоит в том, что, когда пользователь добавляет элемент в корзину, элемент и количество добавляются в массив. Я получаю ошибку «Ошибка синтаксиса: ошибка синтаксиса, неожиданная ошибка T_DOUBLE_ARROW» в строке 13. Я думаю, что я просто ошибаюсь.
<?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; ?>
Ошибка возникает сначала, если при создании (! Isset ($ SESSION ['cart']).
Я получал сообщение об ошибке, когда у меня был включен array_push, но я не помню, что это было.
В основном это функция – массив SESSION создается, когда пользователь добавляет элемент в корзину (всегда количество в это время). Когда элемент добавляется, номер и количество элементов добавляются в массив. Добавьте еще один элемент, он добавлен. Добавьте один и тот же элемент, количество увеличивается на единицу. Удалите элемент … так далее и т. Д.
Надеюсь, вы получите эту идею. У меня есть кости, написанные и я на стадии тестирования / устранения неполадок. Как я уже сказал, я думаю, что создаю массив неправильно. Я хотел бы создать массив пустым и добавлять элементы по мере необходимости, но я попробовал несколько разных способов, пытаясь хотя бы заставить его работать, причем тот, который показан выше, является самым последним. Опять же, очевидно, что подход к ассоциативному массиву SESSION ошибочен.
Любой совет будет очень благодарен! Заранее спасибо.
Похоже, у вас есть ошибка в строке 7, измените ее на
$_SESSION['cart']['itemID'] = array('123' => 0, '456' => 0, '589' => 0, '101' => 0);
вы также можете проверить, как определить массив
Вам не хватает Array
if (!isset($_SESSION['cart'])) { $_SESSION['cart']['itemID'] = Array('123' => 0, '456' => 0, '589' => 0, '101' => 0); }