[ PHP 7.1 ]
Ниже вы можете увидеть мой код PHP.Моя проблема возникает из-за того, что мне трудно понять, почему второй оператор IF не работает с массивом $ _SESSION ['items'], но работает с тестовым массивом $ zoo (я только что создал $ zoo, чтобы делать тесты вместо $_SESSION ['items']).
У меня есть сценарий AJAX, который отправляет данные POST в код PHP, а затем записывает ответ в консоль браузера, чтобы я мог просмотреть результаты.Все работало нормально с моими тестами, все изменения, вносимые в другие массивы, где выполнялись с хорошими результатами, единственная проблема, которую я не мог понять и решить, даже после тщательного поиска некоторых подсказок в Интернете и пробуя разные вещи, это загадочные способымассива $ _SESSION, который, похоже, не любит подвергать свои ключи скрытым операторам IF ... И я попал сюда, пытаясь обнаружить наличие ключа внутри массива, чтобы увеличить его значение.То, что я уже делал ранее с другими массивами, которые не были массивами $ _SESSION, и это работало просто отлично.
session_start();
$_SESSION['items'] = array();
$zoo['animals'] = array('tiger'=>2,'lion'=>3);
if(isset($_POST['item_name'])) {
if (isset($_SESSION['items'][$_POST['item_name']]) || array_key_exists($_POST['item_name'], $_SESSION['items'])) {
$_SESSION['items'][$_POST['item_name']]['qnt']++;
} else {
$_SESSION['item_name'][$_POST['item_name']] = array('model'=>$_POST['item_model'], 'qnt'=>1);
}
echo json_encode($_SESSION['items']);
exit();
}