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을 더해주려면 바깥에서 초기화 필수!