7

Web サイトのショッピング カート機能に取り組んでいますが、次のエラーに遭遇しました。

致命的なエラー: サポートされていないオペランド型が ... 行 xx にあります

これは、配列内の変数と値の間でいくつかの計算を実行していることが原因である可能性があると思います。よくわからないのは、配列内の値に対して計算を実行する方法です。

$line_cost = $price * $quantity;

誰でもこれに関するガイダンスを教えてもらえますか? 私は最も感謝します!関連するコードは次のとおりです-

<?php session_start(); ?>

<?php
    
  $product_id = $_GET['id'];     
  $action     = $_GET['action'];
    
  switch($action) {
    case "add":
      $_SESSION['cart'][$product_id]++;
      break;
  }
        
?>
    
<?php   
  foreach($_SESSION['cart'] as $product_id => $quantity) {  
    list($name, $description, $price) = getProductInfo($product_id);
                    
    echo "$price"; // 20
    var_dump($quantity); // "array(2) { ["productid"]=> string(1) "2" ["qty"]=> int(1) }". 
                    
    $line_cost = $price * $quantity;  //Fatal error occurs here

  }
?>
4

2 に答える 2

15

関数gettype()が示すように、それ$priceは文字列で配列であるため、最初に整数$quantityに型キャストし、配列をそのキーと共に使用して整数値にアクセスします (整数でない場合は、それも型キャストします)。$price$quantity

したがって、次のようになります。

$line_cost =(int)$price * (int)$quantity['key'];

それがうまくいくことを願っています!

于 2013-06-15T10:44:21.290 に答える