将循环变量值存储在循环中的单个变量中


Store loop variable values in single variable in loop

在下面,我使用循环$finaltot显示折扣。总计显示值,即我必须存储在变量中的多个值,并进行数学加法运算。

假设它的显示值为10 23 40,所以我必须制作类似10 + 23 + 40

因此它将显示$finaltot=73

那么我该如何在循环中做到这一点。

<?php
    $product_orignalprice = $this->getProduct()->getPrice();
    $discountedprice=$_item->getPrice(); 
    $todatlsaving=$product_orignalprice-$discountedprice;
    echo $finaltot=$todatlsaving * $this->getQty(); 
?>

最快/最简单的方法是不断将数据添加到变量中:

+=符号用于表示等于原来的值加上新值,因此写入$var+=$newVar与写入$var=$var+$newVar; 相同

<?php
    $product_orignalprice = $this->getProduct()->getPrice();
    $discountedprice=$_item->getPrice(); 
    $todatlsaving=$product_orignalprice-$discountedprice;
    $finaltot+=$todatlsaving * $this->getQty();
    echo $finaltot;
?>

然而,您可以在循环中使用一个数组,并在循环结束时查看和统计价格(以及您需要对数组执行的其他操作)。

您可以编写一个类,并使用公共函数将数据保留在其中,以不断添加到该类的属性中。

在编程中,通常有多种方法来做某事。根据您需要实现的目标,使用最灵活、最容易让其他人阅读的代码或最高效的代码。

编辑:如果在循环中编写echo语句,那么每次循环运行时,它当然会显示一个累计总数——在您的示例中,它会输出10 23 73。如果你运行循环递增变量,然后实际echo循环后的最后一个数字,你会得到你想要的。