PHP の sprintf() 関数を使用してフォーマットされた出力を実現する方法を学びます

王林
リリース: 2023-06-27 08:14:01
オリジナル
2026 人が閲覧しました

PHP 開発では、特に量や時間などを含むデータ型を処理する場合、出力コンテンツの標準化と書式設定が非常に重要です。 PHP には、これらのフォーマットされた出力を簡単に実現するための関数が多数用意されており、その 1 つが sprintf() 関数です。

sprintf() 関数はフォーマットされた出力関数であり、指定されたフォーマット文字列に従って次のパラメータをフォーマットして出力できます。その構文は次のとおりです。

sprintf(format,arg1,arg2,......)
ログイン後にコピー

その中で、format は 1 つ以上の書式指定子を含めることができる書式文字列です。 arg1、arg2 などは、フォーマットする必要があるパラメータです。

形式指定子は % 文字で始まり、その後にパラメータのタイプを指定する文字が続きます。一般的な形式指定子は次のとおりです。

  • %s 文字列型
  • #%d 整数型
  • #%f 浮動小数点型
  • #%c 文字type
  • %b バイナリ型
  • %o 8 進型
  • %x 16 進型
  • %e 科学表記型

たとえば、sprintf() 関数を使用して、名前と年齢を含む文字列を出力します。名前は文字列型で、年齢は整数型です。コードは次のように記述できます:

$name = "Tom";
$age = 18;
echo sprintf("我的名字是%s,年龄是%d岁。",$name,$age);
ログイン後にコピー

実行結果は次のとおりです:

我的名字是Tom,年龄是18岁。
ログイン後にコピー

ご覧のとおり、sprintf() 関数は指定された書式文字列に従ってパラメーターを書式設定し、出力します。シンボルの形式の説明のプレースホルダーが自動的に置き換えられます。

一般的な形式指定子に加えて、sprintf() 関数は、出力形式を細かく制御するために使用できるいくつかの特別なタグと修飾子もサポートしています。たとえば、小数点の後に数値を使用して浮動小数点数の小数点以下の桁数を指定したり、プラス記号 ( ) を使用して正または負の数値の符号を指定したり、ゼロを使用してギャップを埋めることができます。

一般的に使用される特殊なマークと修飾子を次に示します。

  • 小数点の後には、%.2f などの数値が続きます。これは、小数点以下 2 桁が保持されることを意味します
  • プラス記号 ( ) (% d など)。正と負の数値の両方が記号を表示することを示します。
  • マイナス記号 (-) (%-10s など)。左揃えと右側のスペースの充填を示します。プレースホルダーの側面、合計幅は 10 文字
  • d などのゼロ (0) は、プレースホルダーの左側にゼロを埋め込むことを意味し、合計幅は 4 文字です
  • %#o などのポンド記号 (#) は、出力 8 進数の先頭に 0
  • スペース ( ) (% d など) が付加されることを意味し、正の数値にはスペースが表示され、負の数値には記号
  • ## が表示されます。
#以下は、sprintf() 関数を使用してフォーマットされた出力を実行する方法を示す実際的な例です。注文番号、注文日、注文金額などのフィールドを含む注文情報テーブルがあるとします。注文情報をテーブルの形式でページに出力したいとします。

まず、注文情報リストをシミュレートするために 2 次元配列 $orders を定義します:

$orders = [
    ["order_no" => "20190813001", "order_date" => "2019-08-13", "order_amount" => 289.5],
    ["order_no" => "20190813002", "order_date" => "2019-08-13", "order_amount" => 1032],
    ["order_no" => "20190813003", "order_date" => "2019-08-13", "order_amount" => 760.85],
    ["order_no" => "20190814001", "order_date" => "2019-08-14", "order_amount" => 948.5],
    ["order_no" => "20190814002", "order_date" => "2019-08-14", "order_amount" => 213.75],
    ["order_no" => "20190814003", "order_date" => "2019-08-14", "order_amount" => 657.9],
    ["order_no" => "20190815001", "order_date" => "2019-08-15", "order_amount" => 1368.25],
    ["order_no" => "20190815002", "order_date" => "2019-08-15", "order_amount" => 768.5],
    ["order_no" => "20190815003", "order_date" => "2019-08-15", "order_amount" => 840.8]
];
ログイン後にコピー

次に、次のコードを記述し、sprintf() 関数を使用して注文情報を出力します。
echo "<table border='1'>";
echo "<tr><th>订单号</th><th>订单日期</th><th>订单金额</th></tr>";
foreach($orders as $order){
    echo "<tr>";
    echo sprintf("<td>%s</td><td>%s</td><td>¥%.2f元</td>",$order["order_no"],$order["order_date"],$order["order_amount"]);
    echo "</tr>";
}
echo "</table>";
ログイン後にコピー

実行 結果は次のとおりです。

订单号    订单日期    订单金额
20190813001    2019-08-13    ¥289.50元
20190813002    2019-08-13    ¥1032.00元
20190813003    2019-08-13    ¥760.85元
20190814001    2019-08-14    ¥948.50元
20190814002    2019-08-14    ¥213.75元
20190814003    2019-08-14    ¥657.90元
20190815001    2019-08-15    ¥1368.25元
20190815002    2019-08-15    ¥768.50元
20190815003    2019-08-15    ¥840.80元
ログイン後にコピー

sprintf() 関数を使用して出力をフォーマットすると、出力コンテンツがより標準化されて美しくなり、出力内容をより正確に制御できることがわかります。出力内容。実際の開発では、sprintf()関数を柔軟に使用することで、さまざまな複雑な出力要件に対応し、開発効率とプログラムの可読性を向上させることができます。

以上がPHP の sprintf() 関数を使用してフォーマットされた出力を実現する方法を学びますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート