PROJECT/Finance_Web

PHP sum 합계 안 맞는 경우 처리

최뭉뭉 2022. 11. 29. 12:20

회계 시스템에서 합계가 안 맞는 경우가 발생!

 

 

 

→ 코드를 살펴보니

<?for($i=0; $i<6; $i++) {?>
<td title="<?=number_format($cost[$i]*$UNIT)?>"><?=number_format($cost[$i]*$UNIT)?></td>
<?
  $sum+=$cost[$i]*$UNIT;
}?>

모든 for 문 내에 해당 코드처럼 표기되어 있었음

해당 코드의 문제점은 sum의 초기화 없이 복합연산할당자를 사용해주기 때문에

$sum= $sum+ $cost[$i]*$UNIT;

위 코드처럼 풀어써본다면 우측에 있는 $sum의 경우 어떤 값이 들어갈지 모르게 됨

위에서 $sum가 선언되어있지 않기 때문에 아마도 왼쪽에 만들어진 $sum가 다시 한번더 들어가는 것으로 보임

그래서 $sum에 두배를 한 값이 출력되는 현상이 일어남

따라서 for문 밖에서 $sum를 초기화해준 후 해당 코드를 실행해야함

<?
$sum = 0;
for($i=0; $i<6; $i++) 
{?>

→ 간단하게 for문 위에서 $sum 변수만 초기화해주면 정상 작동함

** for문 안에서 sum을 더해주려면 바깥에서 초기화 필수!