2012-01-02 232 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