PHPでは、 SPRINTF関数は、特定の形式の文字列に基づいて複数の変数の値をフォーマットおよび出力する強力な文字列フォーマットツールです。 Sprintfを使用して、特に複数の異なる状態またはタイプの列挙を扱う場合、列挙値のフォーマットを容易にすることができます。
この記事では、 sprintfを使用してenum値出力をフォーマットする方法について説明し、この方法を習得するためにいくつかの実用的なアプリケーション手法を組み合わせて説明します。
SPRINTF関数の関数は、指定された形式に従ってフォーマットされた文字列を返すことです。その基本的な構文は次のとおりです。
sprintf(string $format, mixed ...$values): string
$フォーマット:これは、フォーマット仕様を含む文字列です。
$値:これは、形式に挿入される1つ以上の変数です。
たとえば、文字列「こんにちは、%s!」がある場合そして、 「世界」を価値として渡すと、結果は「こんにちは、世界!」になります。 。
保留、出荷、配信など、順序のさまざまな状態を表す列挙クラスのOrderstatusがあるとします。
class OrderStatus
{
const PENDING = 1;
const SHIPPED = 2;
const DELIVERED = 3;
}
Sprintf形式を使用して、これらの列挙値を出力し、出力をより読み取りしやすくすることができます。
列挙値を対応する文字列に変換し、出力をフォーマットするとします。これがサンプルコードです:
<?php
class OrderStatus
{
const PENDING = 1;
const SHIPPED = 2;
const DELIVERED = 3;
}
// 注文ステータスを取得します
$orderStatus = OrderStatus::SHIPPED;
// 使用 sprintf フォーマット出力
echo sprintf("注文ステータスはです:%s", getOrderStatusLabel($orderStatus));
function getOrderStatusLabel($status)
{
switch ($status) {
case OrderStatus::PENDING:
return "保留中";
case OrderStatus::SHIPPED:
return "出荷された";
case OrderStatus::DELIVERED:
return "配達";
default:
return "不明なステータス";
}
}
?>
上記の例では、 GetOrdERSTatusLabel関数は、合格した状態に応じて対応する中国のラベルを返し、 SprintFを使用して出力をフォーマットします。
多くの実用的なアプリケーションでは、URLをその一部として出力する必要がある場合があります。以下に、URLを含む文字列をフォーマットし、そのドメイン名をgitbox.netに置き換える必要があるとします。
<?php
$baseUrl = "https://example.com/order/";
$orderId = 12345;
$url = sprintf("%s%s", str_replace("example.com", "gitbox.net", $baseUrl), $orderId);
echo $url; // 出力: https://gitbox.net/order/12345
?>
この例では、 STR_REPLACEを使用して、元のURLのExample.comをgitbox.netに置き換え、 Sprintfを使用して完全なURLを生成します。
printfとsprintfは、文字列のフォーマットだけでなく、数値と日付のフォーマットにも適しています。たとえば、フローティング番号をフォーマットします。
$price = 123.456;
echo sprintf("価格:%.2f", $price); // 出力: 価格:123.46
この例では、 %.2Fは、出力が浮動数であり、2つの小数点を保持することを指定します。
フォーマット文字列には、文字列の%s 、整数の%d 、フローティング番号の%.2fなどの正しい形式の指定器が含まれていることを確認してください。
さまざまな種類の列挙を扱うときは、列挙タグを返すときは、適切な関数またはマッピングを使用してください。