PHP의 vsprintf() 함수는 형식 문자열(format)에 지정된 규칙에 따라 배열로 전달된 인수를 치환하고, 최종적으로 형식화된 문자열을 반환하는 함수입니다. sprintf()와 유사하지만, 개별 인수 대신 배열 하나로 인수를 전달한다는 점이 가장 큰 차이점입니다.
문법(Syntax)
vsprintf(format, argarray)
매개변수(Parameters)
format − 출력할 문자열과 그 안에서 변수를 어떻게 형식화할지 지정합니다.
format에 사용할 수 있는 주요 형식 지정자는 다음과 같습니다.
%% − 퍼센트 기호(%)를 그대로 반환합니다.
%b − 2진수(binary number)로 표현합니다.
%c − ASCII 값에 해당하는 문자를 반환합니다.
%d − 부호 있는 10진수(음수, 0, 양수)로 표현합니다.
%e − 소문자를 사용한 과학적 표기법(예: 1.2e+2)으로 표현합니다.
%E − 대문자를 사용한 과학적 표기법(예: 1.2E+2)으로 표현합니다.
%u − 부호 없는 10진수(0 이상의 값)로 표현합니다.
%f − 부동 소수점 수로 표현하며, 로케일(locale) 설정을 인식합니다.
%F − 부동 소수점 수로 표현하며, 로케일 설정을 인식하지 않습니다.
%g − %e와 %f 중 더 짧은 표기를 선택해 사용합니다.
%G − %E와 %f 중 더 짧은 표기를 선택해 사용합니다.
%o − 8진수(octal number)로 표현합니다.
%s − 문자열(string)로 표현합니다.
%x − 16진수(소문자 알파벳 사용)로 표현합니다.
%X − 16진수(대문자 알파벳 사용)로 표현합니다.
argarray − format 문자열 내 % 기호가 있는 위치에 순서대로 삽입될 인수들을 담고 있는 배열입니다.
반환값(Return)
vsprintf() 함수는 형식화가 완료된 문자열을 반환합니다. 결과를 바로 출력하지 않고 반환하기 때문에, 변수에 저장하거나 다른 함수의 인수로 활용할 수 있습니다.
예제(Example)
다음은 vsprintf() 함수를 사용하여 두 개의 숫자를 부동 소수점 형식으로 변환하는 예제입니다.
<?php
$a = 6567;
$b = 8976;
$res = vsprintf("%f\n%f", array($a, $b));
echo $res;
?>
출력(Output)
6567.000000 8976.000000
위 예제에서 배열 array($a, $b)의 요소들이 format 문자열의 각 %f 자리에 순서대로 대입되어, 소수점 아래 6자리까지 표시되는 부동 소수점 문자열이 생성된 것을 확인할 수 있습니다.