2014-02-12 76 views
1

我是新來的PHP,我有一個功能來完成。下面是繼承人:如何在foreach循環內進行數學計算?

<?php 
class math { 
    public function add($data) { // add("1,2,3") separated by comma 
     $data=explode(",", $data); 
     foreach($data as $val){ 
      echo $val +=$val; 
     } 
     return $val; 
    } 

} 
$class_math = new math; 
echo $class_math->add("1,2,3,4"); 
?> 

但是,這應該給結果= 10,但它給結果8,哪裏的錯誤?

回答

4

你覆蓋的$val在循環的價值。

public function add($data) { // add("1,2,3") separated by comma 
    $data=explode(",", $data); 
    $total = 0; 
    foreach($data as $val){ 
     echo $total+=$val; 
    } 
    return $total; 
} 

僅供參考,更簡單的方式來做到這一點可能是使用array_sum()

public function add($data) { // add("1,2,3") separated by comma 
    $data=explode(",", $data); 
    return array_sum($data); 
} 
4

你有重複的變量名:$val

public function add($data) { // add("1,2,3") separated by comma 
    $collect = 0; 
    $data=explode(",", $data); 
    foreach($data as $val){ 
     $collect += $val; 
    } 
    return $collect; 
} 

在最後一次迭代$val4,所以它4+4=8