1. ホーム
  2. php

[解決済み] count(): パラメータは配列かCountableを実装したオブジェクトでなければならない エラー in php

2022-02-02 11:17:24

質問内容

ホームページでアドツーカートシステムを作成しています。

カートの中に商品がない場合、変数 $cart に設定されます。 NULL .

この結果、カートの中の商品数をechoしようとすると、以下のようなエラーが発生します。 count(): Parameter must be an array or an object that implements Countable .

以下は私のPHPコードです。

<?php 
if ((isset($_SESSION['active_user_type']) && $_SESSION['active_user_type'] == "consumer") || !isset($_SESSION['active_user'])) {
?>
<div class="shopping_cart">
<div class="cart_title">
    <a href="view_cart.php">Shopping cart</a>
</div>

<?php
    $total = 0;
    if(isset($_SESSION['cart'])) {
        $cart = $_SESSION['cart'];
        for ($i=0; $i<count($cart); $i++) {
            $item_id = $cart[$i][0];
            $query = "SELECT * FROM items WHERE id=$item_id";
            $result = $db->query($query);
            if ($row = $result->fetch()) {
                $price = ($row['price']*$cart[$i][1]) + $row['shipping_price'];
            }
            $total += $price;
        }
    } else {
        $cart = NULL;
    }
?>
<div class="cart_details">
// the error seems to be from the line below:
    <?php echo count($cart); ?><br />
    <span class="border_cart"></span> Total: 
    <span class="price">
        <?php echo "BD " . number_format((float)$total,3,'.',''); ?>
    </span>
</div>
<div class="cart_icon">
    <a href="checkout.php" title="Checkout">
        <img src="images/shoppingcart.png" alt="" width="48" height="48" border="0" />
    </a>
</div>
</div>
<?php
}
?>

解決方法は?

これは'NULL'をカウントしているためです。

.
.
.
else
{
    $cart = [];
}