7

我正在为网站开发购物车功能,但偶然发现了这个错误:

致命错误:第 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 回答
0

我认为这可能是因为我在变量和数组中的值之间执行一些数学运算。

不完全的。

您正在尝试在整数和数组之间执行数学运算(乘法) ,例如:20 x 数组。这不起作用,因为数组没有乘法操作数(如果有,它可能不会做你想要的)。

要做的是对数组中的变量和值(元素)执行数学运算。由于您的数组是关联数组,因此您需要提供密钥,如下所示:

$line_cost = $price * $quantity['qty'];
于 2022-01-26T05:07:56.847 回答