코딩(php,javascript,mysql)

PHP에서 숫자인 경우에만 number_format 적용하기

mylife365 2024. 12. 15. 15:08

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>

코드 설명

  1. is_numeric($outputunitprice)
    • $outputunitprice가 숫자인지 확인합니다.
    • 숫자인 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.
  2. number_format($outputunitprice)
    • $outputunitprice가 숫자인 경우, 쉼표를 추가하여 보기 좋게 포맷합니다. 예를 들어, 1000000은 1,000,000으로 출력됩니다.
  3. 삼항 연산자 (조건 ? 참 : 거짓)
    • is_numeric($outputunitprice) ? number_format($outputunitprice) : ''
    • 조건이 참일 때 number_format($outputunitprice)를 실행하고, 거짓일 때 빈 문자열('')을 반환합니다.

결과 예시

  1. $outputunitprice = 1000000;
    출력:
  2. <td title="1,000,000">1,000,000</td>
  3. $outputunitprice = 'ABC';
    출력:
  4. <td title=""></td>
  5. $outputunitprice = null;
    출력:
  6. <td title=""></td>

정리

PHP에서 숫자인지 여부를 확인할 때는 is_numeric 함수가 매우 유용합니다. 이를 활용하면 예상치 못한 데이터를 처리할 때도 안정적으로 동작할 수 있습니다. 위 코드는 숫자인 경우만 포맷하고, 숫자가 아닌 경우 공백으로 처리하는 가장 간단하고 효율적인 방법입니다.


Tip: 숫자를 포맷할 때는 데이터의 타입을 항상 확인하는 습관을 들이는 것이 중요합니다. 이를 통해 오류를 방지하고, 깨끗한 코드를 유지할 수 있습니다! 😊

웹 개발 관련 더 많은 팁이 궁금하다면 댓글로 남겨주세요. ✨

반응형