Ce face vsprintf / vprintf
vsprintf funcționează ca sprintf, dar primește valorile într-un singur tablou, nu ca parametri separați. Este utilă când valorile vin deja grupate, de exemplu dintr-un rând din baza de date sau dintr-un explode.
vprintf primește aceiași parametri, dar afișează direct textul, ca printf, și returnează lungimea textului afișat.
Parametri
| Parametru | Descriere |
|---|---|
$format |
Șablonul, cu marcaje precum %s, %d, %.2f. |
$values |
Tabloul cu valori. Se iau în ordine, cheile nu contează. |
Ce returnează
vsprintf: textul formatat. vprintf: numărul de caractere (octeți) afișate.
Exemple
Exemplul 1: Dată din bucăți
%3$02d înseamnă „a treia valoare din tablou, ca număr cu 2 cifre”. Așa poți folosi valorile în altă ordine decât cea din tablou.
<?php
$parti = explode("-", "2026-10-9");
echo vsprintf("%3\$02d.%2\$02d.%1\$d", $parti);
Rezultat
09.10.2026
Exemplul 2: Un rând de tabel, afișat direct cu vprintf
<?php
$comenzi = [
["Ana", 3, 149.5],
["Mihai", 12, 1299],
];
foreach ($comenzi as $rand) {
vprintf("%-8s %3d buc. %10.2f lei\n", $rand);
}
Rezultat
Ana 3 buc. 149.50 lei
Mihai 12 buc. 1299.00 lei
Greșeli frecvente
- Tabloul are mai puține elemente decât marcajele din șablon. În PHP 8 primești
ValueError.
Comenzi înrudite
sprintf: Construiește un text formatat după un șablon și îl returnează, fără să îl afișeze.printf: Afișează un text formatat după un șablon, de exemplu numere cu un anumit număr de zecimale.fprintf / vfprintf: Scrie un text formatat după un șablon direct într-un fișier sau flux deschis.number_format: Formatează un număr cu zecimale și separator de mii, de exemplu 1.299,50.