Php 理解代码是如何工作的;购物车总数

Php 理解代码是如何工作的;购物车总数,php,Php,我刚刚开始学习如何创建购物车 遇到这个例子: <?php echo "Shopping cart:\n"; $items = count($_SESSION['cart']); { $total = 0; echo "<table width=\"100%\" cellpadding=\"1\" border=\"1\">\n"; echo "<tr><td>Ite

我刚刚开始学习如何创建购物车

遇到这个例子:

<?php

   echo "Shopping cart:\n";

      $items = count($_SESSION['cart']);    
     {
         $total = 0;
    echo "<table width=\"100%\" cellpadding=\"1\" border=\"1\">\n";
            echo "<tr><td>Item Name</td><td>Quantity</td><td>Total</td></tr>\n";
            foreach($_SESSION['cart'] as $itemid => $quantity)
            {
                $query = "SELECT description, price FROM items WHERE itemid = $itemid";
                $result = mysql_query($query);
                $row = mysql_fetch_array($result, MYSQL_ASSOC);
                $name = $row['name'];
                $price = $row['price'];

                $subtotal = $price * $quantity;
                $total += $subtotal;

    printf("<tr><td>%s</td><td>%s</td><td>$%.2f</td></tr>\n", $name, $quantity, $subtotal);
            }
            printf("<tr><td colspan=\"2\">Total</td><td>$%.2f</td></tr>\n", $total);
            echo "</table>\n";
       }

?> 

除了“总计或$TOTAL”部分外,代码是有效的,我了解大部分代码:

*$小计=$价格*$数量; $total+=$subtotal*

正如我所说,它确实有效;如果我在购物车中放置两个项目,例如:5块(数量)的石头,每个5美元,2块鹅卵石,每个10美元,我在相应的表行中得到小计,小部件25美元,小部件20美元。我想

*$SUBTOTAL=$price*$quantity*----对此负责,对吗

我不明白的是它是如何得出总数的(这是正确的——45美元)

代码的哪一部分将各个小计相加(即25美元和20美元)

$total+=$subtotal如何工作

我想了解代码是如何工作/处理的,而不是仅仅因为它工作就接受它

提前谢谢

$total += $subtotal
只是以下的简写:

$total = $total + $subtotal;
因此,要将其应用于代码:

// Start the total at 0
$total = 0;

// For every item in the cart
foreach($_SESSION['cart'] as $itemid => $quantity)
{
    // Get the item's price from the database
    $price = $row['price'];

    // The subtotal is the cost of each item multiplied by how many you're ordering
    $subtotal = $price * $quantity;

    // Add this subtotal to the running total
    $total += $subtotal;
}

+=
运算符获取表达式左侧的值,并添加右侧的值。你可以这样想:

$total = $total + $subtotal;

foreach()
循环遍历所有项目,并在每次迭代中通过将产品单价乘以其数量来计算该产品的总价,该数量临时存储在
$subtotal

中,感谢您的快速回复。我想对于我试图理解的问题,一个更好的问题是:代码的哪一部分生成了一个运行总数?正如您所提到的,-$subtotal=$price*$quantity--为每个单独的项目生成小计($25和$20),但是如何(代码的哪一部分执行$25加$20)将这些小计加起来生成$45呢?我在我的帖子中解释了这一点,
$total+=$subtotal
行实现了这一点。
foreach
循环执行两次,对购物车中的每个项目执行一次。
$total
从0开始,然后加上25,再加上20。再次感谢。我想我现在明白了;另一个关键组件是foreach循环。感谢您的回复。我最初并不认为foreach循环会遍历$subtotal/$total部分。现在我明白了。