형식 문자열 출력은 PHP 개발에서 일반적인 작업입니다. 특히 변수를 동적으로 삽입하고 출력 형식을 일관되게 유지 해야하는 경우. vprintf () 는 출력 문자열을 형식화하는 데 PHP에서 사용되는 함수입니다. printf () 와 유사하지만 차이점은 vprintf ()가 배열을 통해 매개 변수를 수락한다는 것입니다. 이 기사는 기본 사용, 적용 가능한 시나리오 및 vprintf () 의 실제 예에 대한 심층적 인 설명을 제공합니다.
int vprintf(string $format, array $values)
$ 형식 : 형식 지정자를 포함하는 형식 문자열 (예 : %s , %d , %f 등).
$ 값 : 형식 문자열로 채울 값을 포함하는 배열.
함수는 문자 출력 수를 반환합니다.
printf ()는 변수 수의 매개 변수를 수신하고 vprintf ()는 배열을 수신합니다. 이것은 함수 또는 외부 인터페이스에서 매개 변수 세트를 얻는 것과 같은 동적 매개 변수가 필요한 경우에 유용합니다.
printf("Hello, %s! You have %d new messages.", "Alice", 5);
$data = ["Alice", 5];
vprintf("Hello, %s! You have %d new messages.", $data);
둘 다의 출력 결과는 동일하지만 vprintf () 의 쓰기는 데이터 소스가 고정되지 않은 상황에 더 적합합니다.
vprintf ()를 사용하는 경우 다음은 일반적으로 사용되는 형식 지정자입니다.
%s : 문자열
%D : 정수 (소수점)
%F : 부동 소수점 번호
%B : 이진수
%X : 16 진수 (소문자)
$data = ["gitbox.net", 2025];
vprintf("입장 %s 사용자의 수 %d 올해에는 상당한 성장이있었습니다。", $data);
산출:
입장 gitbox.net 사용자의 수 2025 올해에는 상당한 성장이있었습니다。
구조화 된 테이블을 인쇄 해야하는 경우 vprintf ()는 각 열의 너비를 쉽게 제어 할 수 있습니다.
$rows = [
["제품", "가격", "수량"],
["건반", 99.99, 5],
["생쥐", 49.5, 10]
];
foreach ($rows as $row) {
vprintf("%-10s %-8.2f %-5d\n", $row);
}
산출:
제품 가격 수량
건반 99.99 5
생쥐 49.50 10
%-10s는 왼쪽 정렬을 의미하며 10 자 너비를 설명합니다. %-8.2f는 플로팅 포인트 수가 8 자 너비를 차지하는 두 자리 자리를 유지하는 것을 의미합니다. %-5d는 정수를 의미하며 5 자 너비를 설명합니다.
function logMessage($format, $params) {
echo "[" . date("Y-m-d H:i:s") . "] ";
vprintf($format, $params);
echo "\n";
}
logMessage("사용자 %s 성공적으로 로그인하십시오,IP: %s", ["alice", "192.168.1.10"]);
출력은 비슷합니다.
[2025-05-29 15:42:01] 사용자 alice 성공적으로 로그인하십시오,IP: 192.168.1.10
문자열을 직접 출력하지 않지만 먼저 문자열을 포맷 한 다음 저장하거나 처리하려면 vsprintf ()를 사용하는 것이 더 적절합니다. vprintf () 사용량과 일치하지만 직접 출력 대신 문자열을 반환합니다.
$data = ["gitbox.net", "홈페이지"];
$result = vsprintf("欢迎입장 %s ~의%s!", $data);
echo $result;
산출:
欢迎입장 gitbox.net ~의홈페이지!
형식 문자열의 매개 변수 수와 배열의 요소 수는 엄격하게 일치해야합니다. 그렇지 않으면 오류 또는 불완전한 출력 이보고됩니다.
매개 변수 배열이 숫자 인덱스인지 확인하기 위해 Array_Values () 와 함께 사용할 수 있습니다.