Не работает array_key_exists, php
Есть метод, который должен добавлять продукт в корзину:
public static function addProduct($id) { // $id – id товара
$id = intval($id);
$cartProducts = self::getCartList();
if (empty($cartProducts)) {
$cartProducts = [];
$cartProducts[$id] = 1;
$cartProductsJson = json_encode($cartProducts);
self::saveInCart($cartProductsJson);
} else {
$cartProducts = (array)json_decode($cartProducts);
if (array_key_exists($id, $cartProducts)) { ... }
}
Метод getCartList():
public static function getCartList() {
$userId = User::checkLogged();
$db = Db::getConnection();
$result = $db->prepare("SELECT `cart_products` FROM `user` WHERE `id`=:id");
$result->bindParam(":id", $userId, PDO::PARAM_INT);
$result->execute();
$result->setFetchMode(PDO::FETCH_ASSOC);
$row = $result->fetch();
return $row['cart_products'];
}
Метод saveInCart():
public static function saveInCart($json) {
$userId = User::checkLogged();
$db = Db::getConnection();
$result = $db->prepare("UPDATE `user` SET `cart_products`=:json WHERE `id`=:id");
$result->bindParam(":json", $json, PDO::PARAM_STR);
$result->bindParam(":id", $userId, PDO::PARAM_INT);
$result->execute();
}
Проблема: авторизировался за пользователя DenisMyshak, у которого есть один товар в корзине(json-формат: продукт с id = 236 и количеством = 1). После этого в переменную $cartProducts записывается массив в json. Дальше срабатывает ветка else условного оператора в методе addProduct(). И после мне нужно определить: есть ли ключи этого массива, которые совпадают с $id. Но почему то даже если $id = 236 и в массиве есть этот ключ – возвращает false. Буду очень благодарен за ответ!
