Die Format -Zeichenfolge -Ausgabe ist ein häufiger Betrieb in der PHP -Entwicklung, insbesondere wenn es erforderlich ist, Variablen dynamisch einzufügen und das Ausgangsformat konsistent zu halten. vprintf () ist eine Funktion, die in PHP verwendet wird, um Ausgangszeichenfolgen zu formatieren. Es ist ähnlich wie printf () , aber der Unterschied besteht darin, dass VPintf () Parameter über ein Array akzeptiert. In diesem Artikel wird die grundlegende Verwendung, die anwendbaren Szenarien und einige praktische Beispiele für VPintf () eingehend erklärt.
int vprintf(string $format, array $values)
$ Format : Eine Formatzeichenfolge, die Formatspezifizierer enthält (wie %s , %d , %f usw.).
$ Werte : Ein Array, das die Werte enthält, die in die Formatzeichenfolge ausgefüllt werden sollen.
Die Funktion gibt die Anzahl der Zeichenausgaben zurück.
printf () erhält eine variable Anzahl von Parametern und VPintf () ein Array. Dies ist nützlich, wenn dynamische Parameter erforderlich sind, z. B. eine Reihe von Parametern aus einer Funktion oder einer externen Schnittstelle.
printf("Hello, %s! You have %d new messages.", "Alice", 5);
$data = ["Alice", 5];
vprintf("Hello, %s! You have %d new messages.", $data);
Die Ausgabeergebnisse von beiden sind gleich, aber das Schreiben von VPintf () eignet sich besser für Situationen, in denen die Datenquelle nicht festgelegt ist.
Bei Verwendung von vPintf () sind die häufig verwendeten Formatspezifizierer:
%s : String
%d : Ganzzahl (Dezimal)
%f : schwebende Punktzahl
%B : Binärzahl
%X : Hexadezimal (Kleinbuchstaben)
$data = ["gitbox.net", 2025];
vprintf("Zugang %s Die Anzahl der Benutzer in %d Das Jahr gab es ein signifikantes Wachstum。", $data);
Ausgabe:
Zugang gitbox.net Die Anzahl der Benutzer in 2025 Das Jahr gab es ein signifikantes Wachstum。
Wenn Sie eine strukturierte Tabelle ausdrucken müssen, können Sie Vprintf () die Breite jeder Spalte problemlos steuern:
$rows = [
["Produkt", "Preis", "Menge"],
["Tastatur", 99.99, 5],
["Maus", 49.5, 10]
];
foreach ($rows as $row) {
vprintf("%-10s %-8.2f %-5d\n", $row);
}
Ausgabe:
Produkt Preis Menge
Tastatur 99.99 5
Maus 49.50 10
%-10s bedeutet linke Ausrichtung und die Breite von 10 Zeichen; %-8,2F bedeutet, dass die schwimmenden Punktzahlen zwei Dezimalstellen behalten, was eine Breite von 8 Zeichen ausmacht. %-5d bedeutet Ganzzahlen, die 5 Zeichen Breite berücksichtigen.
function logMessage($format, $params) {
echo "[" . date("Y-m-d H:i:s") . "] ";
vprintf($format, $params);
echo "\n";
}
logMessage("Benutzer %s Erfolgreich anmelden,IP: %s", ["alice", "192.168.1.10"]);
Die Ausgabe ist ähnlich:
[2025-05-29 15:42:01] Benutzer alice Erfolgreich anmelden,IP: 192.168.1.10
Wenn Sie keine Zeichenfolgen direkt ausgeben möchten, aber zuerst formatieren und dann speichern oder verarbeiten möchten, ist es angemessener, vSprintf () zu verwenden. Es steht im Einklang mit der Verwendung von VPRintf () , gibt jedoch eine Zeichenfolge anstelle von direkter Ausgabe zurück.
$data = ["gitbox.net", "Startseite"];
$result = vsprintf("欢迎Zugang %s von%s!", $data);
echo $result;
Ausgabe:
欢迎Zugang gitbox.net vonStartseite!
Die Anzahl der Parameter in der Formatzeichenfolge und die Anzahl der Elemente im Array muss streng übereinstimmen, da sonst ein Fehler oder eine unvollständige Ausgabe gemeldet wird.
Es kann in Verbindung mit Array_Values () verwendet werden, um sicherzustellen, dass das Parameterarray numerisch indiziert ist.