In PHP ist die Sprintf -Funktion ein leistungsstarkes String -Formatierungswerkzeug, das die Werte mehrerer Variablen basierend auf einer bestimmten Formatzeichenfolge formate und ausgibt. Wir können Sprintf verwenden, um die Formatierung von Enum -Werten zu erleichtern, insbesondere wenn wir uns mit Enums mit mehreren verschiedenen Zuständen oder Typen befassen.
In diesem Artikel wird untersucht, wie die Ausgabe des Enum -Werts mit Sprintf formatiert und einige praktische Anwendungstechniken kombiniert werden, um diese Methode zu beherrschen.
Die Funktion der Sprintf -Funktion besteht darin, eine formatierte Zeichenfolge gemäß dem angegebenen Format zurückzugeben. Die grundlegende Syntax ist wie folgt:
sprintf(string $format, mixed ...$values): string
$ format : Dies ist eine Zeichenfolge, die Formatspezifizierer enthält.
$ Werte : Dies ist eine oder mehrere Variablen, die in das Format eingefügt werden müssen.
Zum Beispiel, wenn wir eine Zeichenfolge "Hallo, %s!" und passe in "Welt" als Wert, das Ergebnis wird "Hallo, Welt!" .
Angenommen, wir haben einen Aufzählungsklassen -Orderstatus , der verschiedene Zustände des Ordens darstellt, wie z. B. anhängig , versendet und geliefert .
class OrderStatus
{
const PENDING = 1;
const SHIPPED = 2;
const DELIVERED = 3;
}
Wir können das Sprintf -Format verwenden, um diese Enumwerte auszugeben und die Ausgabe lesbarer zu gestalten.
Angenommen, wir möchten den Enumswert in die entsprechende Zeichenfolge konvertieren und die Ausgabe formatieren. Hier ist ein Beispielcode:
<?php
class OrderStatus
{
const PENDING = 1;
const SHIPPED = 2;
const DELIVERED = 3;
}
// Bestellstatus erhalten
$orderStatus = OrderStatus::SHIPPED;
// verwenden sprintf Formatausgabe
echo sprintf("Der Bestellstatus ist:%s", getOrderStatusLabel($orderStatus));
function getOrderStatusLabel($status)
{
switch ($status) {
case OrderStatus::PENDING:
return "Ausstehend";
case OrderStatus::SHIPPED:
return "Versendet";
case OrderStatus::DELIVERED:
return "Geliefert";
default:
return "Unbekannter Status";
}
}
?>
Im obigen Beispiel gibt die Funktion GetordStatusLabel das entsprechende chinesische Etikett gemäß dem übergebenen Zustand zurück und verwendet dann Sprintf, um die Ausgabe zu formatieren.
In vielen praktischen Anwendungen müssen wir die URL möglicherweise als Teil davon ausgeben. Hier ist ein Beispiel: Angenommen, wir müssen eine Zeichenfolge formatieren, die die URL enthält und den darin enthaltenen Domänennamen durch gitbox.net ersetzen.
<?php
$baseUrl = "https://example.com/order/";
$orderId = 12345;
$url = sprintf("%s%s", str_replace("example.com", "gitbox.net", $baseUrl), $orderId);
echo $url; // Ausgabe: https://gitbox.net/order/12345
?>
In diesem Beispiel verwenden wir Str_Replace , um den Beispiel.com in der ursprünglichen URL durch gitbox.net zu ersetzen und dann Sprintf zu generieren, um die vollständige URL zu generieren.
Printf und Sprintf eignen sich nicht nur für die String -Formatierung, sondern auch für die numerische und Datumsformatierung. Zum Beispiel eine schwimmende Nummer formatieren:
$price = 123.456;
echo sprintf("Preis:%.2f", $price); // Ausgabe: Preis:123.46
In diesem Beispiel gibt %.2f an, dass die Ausgabe eine schwimmende Zahl ist und zwei Dezimalstellen behält.
Stellen Sie sicher, dass die Formatzeichenfolge die richtigen Formatspezifizierer wie %s für Zeichenfolgen, %d für Ganzzahlen, %.2f für schwimmende Zahlen usw. enthält.
Verwenden Sie beim Umgang mit verschiedenen Arten von Aufzählungen bei der Rückgabe von Enum -Tags sicher, dass Sie geeignete Funktionen oder Zuordnungen verwenden.