現在の位置: ホーム> 最新記事一覧> VPRINTF:PHPフォーマット出力の基本的な使用

VPRINTF:PHPフォーマット出力の基本的な使用

gitbox 2025-05-29

フォーマット文字列出力は、特に変数を動的に挿入し、出力形式を一貫性を保つ必要がある場合に、PHP開発における一般的な操作です。 VPRINTF()は、出力文字列をフォーマットするためにPHPで使用される関数です。 printf()に似ていますが、違いはvprintf()が配列を介してパラメーターを受け入れることです。この記事では、基本的な使用法、適用可能なシナリオ、およびVPRINTF()のいくつかの実用的な例について詳しく説明します。

1.vprintf()の基本的な構文

int vprintf(string $format, array $values)
  • $フォーマット:フォーマット指定者( %s%d%fなど)を含むフォーマット文字列。

  • $値:フォーマット文字列に入力する値を含む配列。

関数は、文字の出力数を返します。

2。vprintf()とprintf()の違い

printf()は可変数のパラメーターを受信し、 vprintf()は配列を受信します。これは、関数や外部インターフェイスからパラメーターのセットを取得するなど、動的なパラメーターが必要な場合に役立ちます。

printfの例:

 printf("Hello, %s! You have %d new messages.", "Alice", 5);

vprintf例:

 $data = ["Alice", 5];
vprintf("Hello, %s! You have %d new messages.", $data);

両方の出力結果は同じですが、 VPRINTF()の書き込みは、データソースが固定されていない状況により適しています。

3。一般的な形式の仕様

vprintf()を使用する場合、以下は一般的に使用される形式の仕様です。

  • %S :文字列

  • %D :整数(小数)

  • %F :浮動小数点数

  • %B :バイナリ番号

  • %X :ヘキサデシマル(小文字)

例:

 $data = ["gitbox.net", 2025];
vprintf("アクセス %s のユーザーの数 %d 今年は大幅に成長しています。", $data);

出力:

 アクセス gitbox.net のユーザーの数 2025 今年は大幅に成長しています。

4。実用的なアプリケーションシナリオ

1。データテーブル出力

構造化されたテーブルを印刷する必要がある場合、 vprintf()を使用すると、各列の幅を簡単に制御できます。

 $rows = [
    ["製品", "価格", "量"],
    ["キーボード", 99.99, 5],
    ["ねずみ", 49.5, 10]
];

foreach ($rows as $row) {
    vprintf("%-10s %-8.2f %-5d\n", $row);
}

出力:

 製品       価格     量 
キーボード       99.99    5    
ねずみ       49.50    10   

%-10Sとは、10文字の幅を占める左のアライメントを意味します。 %-8.2Fは、浮動小数点数が2つの小数点を保持し、8文字の幅を占めることを意味します。 %-5Dは整数を意味し、5文字の幅を占めます。

2。動的ログ出力

function logMessage($format, $params) {
    echo "[" . date("Y-m-d H:i:s") . "] ";
    vprintf($format, $params);
    echo "\n";
}

logMessage("ユーザー %s 正常にログインします,IP: %s", ["alice", "192.168.1.10"]);

出力は似ています:

 [2025-05-29 15:42:01] ユーザー alice 正常にログインします,IP: 192.168.1.10

5。vsprintf()との比較

文字列を直接出力したくないが、最初にフォーマットしてから保存または処理したい場合は、 vsprintf()を使用する方が適切です。 VPRINTF()使用法と一致していますが、直接出力ではなく文字列を返します。

 $data = ["gitbox.net", "ホームページ"];
$result = vsprintf("欢迎アクセス %s の%s!", $data);
echo $result;

出力:

 欢迎アクセス gitbox.net のホームページ!

六。ヒント

  • 形式の文字列のパラメーターの数と配列内の要素の数を厳密に一致させる必要があります。そうしないと、エラーまたは不完全な出力が報告されます。

  • Array_Values()と組み合わせて使用​​して、パラメーター配列が数値インデックスが付けられていることを確認できます。