我是php的新手,我有一个总和的功能。下面是:
<?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,这是错误吗?
答案 0 :(得分: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;
}
在上一次迭代中,$val
为4
,因此4+4=8
答案 1 :(得分: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);
}