sprintf()
함수의 사용법
sprintf()
함수는
특정 형식의 데이터에 맞춰 문자열을 구성해서 반환하는 함수입니다.
이 함수는 템플릿처럼 문자열을 형식을 만들고 이 형식으로 문자열을 생성하는데 유용합니다.
sprintf()
함수에서 매개변수는 순서대로 매칭됩니다.
즉, 포맷 문자열 내에 있는 각 포맷 지정자(%s
, %u
등)가 뒤에 나오는 인수들과 순서대로 연결됩니다. 데이터 타입에 의한 자동 매칭은 일어나지 않으며, 포맷 지정자와 인수의 순서가 일치해야 합니다.
sprintf()
함수는 화면에 직접 출력하지 않고, 형식에 맞게 변환하여 반환합니다.
sprintf()
함수의 형식은 다음과 같습니다.
구문
매개변수
$format
형식화할 문자열입니다.
이 문자열에는 0개 이상의 형식 지정자(format specifiers)가 포함되어 있으며, 이 형식 지정자에 맞게 뒤에 오는 값들이 변환됩니다.
형식 지정자는 %
로 시작하며, 그 뒤에 데이터 유형을 나타내는 특별한 의미의 문자가 따라옵니다.
형식 지정자
다음은 많이 사용되는 형식 지정자입니다.
형식 지정자 | 설명 | 예제 | 출력 결과 |
---|---|---|---|
%s |
문자열(string) | sprintf('이름: %s', 'Alice') |
'이름: Alice' |
%d |
정수(10진수, decimal) | sprintf('나이: %d', 30) |
'나이: 30' |
%f |
부동소수점 숫자(float) | sprintf('가격: %.2f', 19.99) |
'가격: 19.99' |
%u |
부호 없는 10진수(unsigned decimal number, 0보다 크거나 같은 수를 사용할 때) | sprintf('수량: %u', 10) |
'수량: 10' |
%e |
지수 표기법(소문자) | sprintf('지수 표기법: %e', 1234.56) |
'지수 표기법: 1.234560e+03' |
%E |
지수 표기법(소문자) | sprintf('지수 표기법: %E', 1234.56) |
'지수 표기법: 1.234560E+03' |
%c |
ASCII 값에 따른 문자( character) | sprintf('문자: %c', 65) |
'문자: A' |
%p |
포인터(PHP 7.0.0 이상) | sprintf('포인터: %p', $variable) |
'포인터: 0x...' |
위 표에서 언급된 것 이외에도 다른 형식 지정자가 존재합니다. php.net - Parameters를 참조하세요!
...$values
$format
의 형식 문자열 내의 형식 지정자와 순서대로 일치하는 값들입니다.
반환 값
형식 문자열과 매개변수로 전달된 값들에 따라 형식화된 문자열을 반환합니다.
반환된 문자열은 형식 지정자에 의해 매개변수 값들이 적절하게 변환된 결과입니다.
활용 예제
sprintf()
함수는 문자열을 형식화하여 반환하는 데 매우 유용한 함수입니다. 여러 데이터를 특정 형식으로 변환해 문자열로 만들 때 활용할 수 있으며, 특히 반복적인 작업이나 다국어 지원, 템플릿 문자열 생성에 매우 적합합니다. 아래에 실전에서 사용할 수 있는 몇 가지 sprintf()
활용 예제를 소개합니다.
배열을 이용한 템플릿 활용 예제
이 예제에서는 sprintf()
함수를 활용하여 문자열의 형식을 템플릿으로 사용하고,
배열의 데이터를 반복적으로 처리하여 여러 항목의 정보를 형식화된 문자열로 출력하는 방법을 보여줍니다.
코드 부연설명
foreach()
반복문은 배열이나 객체를 순회해서 반복으로 처리할 때 사용하는 대표적인 구문입니다.
배열 데이터를 이용한 형식화
배열의 데이터를 반복 처리하면서 sprintf()
를 활용해 각 항목의 정보를 형식화된 문자열로 출력하는 예제입니다.
이 예제는 도서 정보가 담긴 배열을 순회하면서 각 도서의 제목, 저자, 남은 수량을 지정된 형식으로 출력합니다.
JSON 데이터를 이용한 형식화
JSON 데이터를 받아와 sprintf()
로 형식화하는 예제입니다. API 응답 등을 처리할 때 유용합니다.
이 예제에서는 JSON 데이터를 받아와 형식 지정자를 사용해 사람이 읽기 쉬운 형식으로 데이터를 출력합니다.
다국어 번역에 이용하는 예제
다국어 지원 시, sprintf()
를 사용해 텍스트를 동적으로 변환하는 데 활용할 수 있습니다.
하나의 코드로 여러 언어에 맞춰 문자열을 생성하는 것이 실전에서 유용하게 사용될 수 있습니다.
그러면 영어와 한글 두 가지 템플릿을 사용하는 예제 코드를 보여드리겠습니다.
이렇게 하면 동일한 코드로 여러 언어를 지원할 수 있고, 각 언어에 맞는 템플릿을 손쉽게 관리할 수 있습니다.