foreach循环在循环内添加值

时间:2012-01-02 12:49:27

标签: php loops foreach

这似乎很基本,但我坚持这个。

$value = 0;
foreach($this->products->result() as $this->product)
{
    $value += $this->product->price;
}
//$value += $this->get_order_shipping_cost($orders_id);

return $value;

该值应该被添加以创建总价格然后在循环之外添加运费,但由于某种原因我的循环只返回第一个值,所以我在某处覆盖某些东西。

2 个答案:

答案 0 :(得分:3)

我认为这是重写的地方:

foreach($this->products->result() as $this->product)

我不知道你之前在做什么,但也许你可以在for循环中使用临时变量名这样:

foreach($this->products->result() as $tempProduct)
{
    $value += $tempProduct->price;
}

希望它有效;) 迎接,斯特凡

答案 1 :(得分:0)

您正在设置您班级的私人会员,而您只想获得产品而且就是这样。您不需要使用$this->product,只需使用自由变量,例如$product,它应该有效:

$value = 0;
foreach($this->products->result() as $product)
{
    $value += $product->price;
}

如果products是您的某个对象,您应该给它一个类似getTotalPrice()的方法,它只返回总和,如下所示:

$value = $this->products->getTotalPrice();

然后,您可以在代码中使用更灵活的内容。希望这有用。