2012-01-02 231 views
0

看起来很基本,但我坚持在这一个。foreach循环在循环内添加值

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

return $value; 

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

+0

'$这个 - >产品 - >结果()'这是什么?它是一系列产品吗? – maxjackie 2012-01-02 12:53:26

+0

你确定你的循环是否运行到预期的否。时间?可能只是它的一次运行! – Arfeen 2012-01-02 12:55:57

回答

3

我认为这是在覆盖heapens:

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

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

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

希望工程;) 映入眼帘,斯特凡

0

你正在设置你的班级的私人成员,而你只想获得产品,就是这样。你并不需要使用$this->product,只需使用一个自由变量,而不是像$product它应该工作:

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

此外,如果products是你的对象之一,你应该给它可能是一个方法类似getTotalPrice()刚刚返回总和,如下所示:

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

然后,您可以在代码中更灵活地使用它。希望这是有帮助的。

+0

修复了“产品”中缺少“p”的问题。 – Tudor 2012-01-02 12:53:41