PHP에서 숫자인 경우에만 number_format 적용하기
PHP에서 숫자인 경우에만 number_format 적용하기
웹 개발을 하다 보면 숫자 데이터를 보기 좋게 쉼표로 구분해야 할 때가 많습니다. PHP에서는 이 작업을 간단히 처리하기 위해 number_format 함수를 제공합니다. 하지만 때로는 데이터가 숫자가 아닐 수도 있습니다. 이 경우, 숫자가 아닌 값에 number_format을 적용하려 하면 오류는 없지만 원치 않는 결과가 출력될 수 있습니다.
오늘은 숫자인 경우에만 number_format을 적용하고, 그렇지 않은 경우 공백('')을 출력하는 방법을 초보자도 쉽게 이해할 수 있도록 알려드리겠습니다.
문제 상황
예를 들어, 아래와 같은 PHP 코드가 있다고 가정해 봅시다:
<td title="<?=number_format($outputunitprice)?>"><?=number_format($outputunitprice)?></td>
이 코드는 $outputunitprice 값을 쉼표 형식으로 출력합니다. $outputunitprice가 숫자일 경우에는 잘 동작하지만, 만약 숫자가 아닌 값이 들어오면 예상치 못한 출력이 발생할 수 있습니다.
해결 방법?
is_numeric 함수를 활용하면 숫자인지 확인하고, 숫자인 경우에만 number_format을 적용할 수 있습니다.
올바른 코드 작성 방법
아래는 수정된 코드입니다. 이 코드는 $outputunitprice가 숫자인 경우에만 number_format을 적용하고, 숫자가 아니면 빈 문자열('')을 출력합니다.
<td title="<?= is_numeric($outputunitprice) ? number_format($outputunitprice) : '' ?>">
<?= is_numeric($outputunitprice) ? number_format($outputunitprice) : '' ?>
</td>
코드 설명
- is_numeric($outputunitprice)
- $outputunitprice가 숫자인지 확인합니다.
- 숫자인 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.
- number_format($outputunitprice)
- $outputunitprice가 숫자인 경우, 쉼표를 추가하여 보기 좋게 포맷합니다. 예를 들어, 1000000은 1,000,000으로 출력됩니다.
- 삼항 연산자 (조건 ? 참 : 거짓)
- is_numeric($outputunitprice) ? number_format($outputunitprice) : ''
- 조건이 참일 때 number_format($outputunitprice)를 실행하고, 거짓일 때 빈 문자열('')을 반환합니다.
결과 예시
- $outputunitprice = 1000000;
출력: - <td title="1,000,000">1,000,000</td>
- $outputunitprice = 'ABC';
출력: - <td title=""></td>
- $outputunitprice = null;
출력: - <td title=""></td>
정리
PHP에서 숫자인지 여부를 확인할 때는 is_numeric 함수가 매우 유용합니다. 이를 활용하면 예상치 못한 데이터를 처리할 때도 안정적으로 동작할 수 있습니다. 위 코드는 숫자인 경우만 포맷하고, 숫자가 아닌 경우 공백으로 처리하는 가장 간단하고 효율적인 방법입니다.
Tip: 숫자를 포맷할 때는 데이터의 타입을 항상 확인하는 습관을 들이는 것이 중요합니다. 이를 통해 오류를 방지하고, 깨끗한 코드를 유지할 수 있습니다! 😊
웹 개발 관련 더 많은 팁이 궁금하다면 댓글로 남겨주세요. ✨