Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP sprintf() 함수 완벽 정리 – 문법, 형식 지정자, 실전 예제

PHP의 sprintf() 함수는 지정한 형식(format)에 따라 문자열을 포맷팅하여 반환하는 함수입니다. printf()와 달리 화면에 출력하지 않고 포맷팅된 문자열을 그대로 돌려주기 때문에 변수에 저장하거나 다른 함수의 인자로 활용하기에 매우 유용합니다.

문법(Syntax)

sprintf(format, arg1, arg2, arg++)

매개변수(Parameters)

  • format − 출력할 문자열과 그 안에서 변수를 어떻게 형식화할지 지정합니다.

사용 가능한 형식 지정자

  • %% - 퍼센트(%) 기호 자체를 반환합니다.

  • %b - 이진수(binary)로 표현합니다.

  • %c - ASCII 값에 해당하는 문자를 반환합니다.

  • %d - 부호 있는 10진수(음수, 0, 양수)로 표현합니다.

  • %e - 소문자를 사용한 과학적 표기법(예: 1.2e+2)입니다.

  • %E - 대문자를 사용한 과학적 표기법(예: 1.2E+2)입니다.

  • %u - 부호 없는 10진수(0 이상)로 표현합니다.

  • %f - 부동 소수점 숫자(로케일 설정을 반영)로 표현합니다.

  • %F - 부동 소수점 숫자(로케일 설정을 반영하지 않음)로 표현합니다.

  • %g - %e와 %f 중 더 짧은 표현을 사용합니다.

  • %G - %E와 %f 중 더 짧은 표현을 사용합니다.

  • %o - 8진수(octal)로 표현합니다.

  • %s - 문자열(string)로 표현합니다.

  • %x - 16진수(소문자)로 표현합니다.

  • %X - 16진수(대문자)로 표현합니다.

  • argument1 − 형식 문자열에서 첫 번째 %(퍼센트) 기호 위치에 삽입될 값입니다.

  • argument2 − 두 번째 % 기호 위치에 삽입될 값입니다. 이후 인자들도 같은 방식으로 순서대로 삽입됩니다.

반환값(Return)

sprintf() 함수는 형식이 적용된 포맷팅된 문자열을 반환합니다.

예제 1

숫자 값을 부동 소수점 형식(%f)으로 변환하는 기본적인 예제입니다.

<?php
    $val = 299;
    $txt = sprintf("%f", $val);
    echo $txt;
?>

출력 결과

299.000000

%f는 기본적으로 소수점 이하 6자리까지 표시하므로, 정수 299가 299.000000으로 출력되는 것을 확인할 수 있습니다.

예제 2

여러 형식 지정자를 함께 사용하는 예제입니다. %%는 리터럴 % 문자를 출력하고, %b는 이진수, %c는 ASCII 문자로 변환합니다.

<?php
    $val = 768776;
    $char = 95;
    echo sprintf("%%b = %b", $val)."<br>";
    echo sprintf("%%c = %c", $char);
?>

출력 결과

%b = 10111011101100001000
%c = _

768776은 이진수 10111011101100001000으로 변환되었고, ASCII 코드 95에 해당하는 문자는 밑줄(_)임을 알 수 있습니다.

마무리

sprintf()는 숫자 포맷팅, 날짜·통화 표현, SQL 쿼리 문자열 조합 등 다양한 상황에서 활용도가 높은 PHP의 핵심 문자열 함수입니다. 형식 지정자의 의미만 정확히 익혀두면 복잡한 문자열 조작도 간결하고 안전하게 처리할 수 있습니다.