関数 vsprintf
関数 vsprintf は sprintf と似ていますが、可変長の引数の代わりに配列として引数を受け取ります。
最初のパラメータとしてフォーマット指定子を含む書式文字列を、2番目のパラメータとして代入する値の配列を渡します。書式文字列では、%記号で始まり、出力のフォーマットを制御する特別な記号(フォーマット指定子)が使用されます。
構文
vsprintf(string $format, array $args);
フォーマット指定子
| 指定子 | 説明 |
|---|---|
%s |
文字列 |
%d |
符号付き整数(10進数) |
%u |
符号なし整数(10進数) |
%f |
浮動小数点数(ロケール依存) |
%F |
浮動小数点数(ロケール非依存) |
%c |
ASCIIコードによる文字 |
%x |
16進数整数(小文字) |
%X |
16進数整数(大文字) |
%o |
8進数整数 |
%b |
2進数整数 |
%e |
科学的記数法(小文字) |
%E |
科学的記数法(大文字) |
%g |
%eまたは%fの短縮形 |
%G |
%Eまたは%Fの短縮形 |
%% |
パーセント記号 |
例
値の置換による文字列フォーマットの基本的な例:
<?php
$res = vsprintf('Hello %s! Today is %s.', ['John', 'Monday']);
echo $res;
?>
コード実行結果:
'Hello John! Today is Monday.'
例
様々なフォーマット指定子の使用例:
<?php
$res = vsprintf('%04d-%02d-%02d', [2023, 5, 12]);
echo $res;
?>
コード実行結果:
'2023-05-12'
例
浮動小数点数を扱う例:
<?php
$res = vsprintf('Price: $%.2f', [19.99]);
echo $res;
?>
コード実行結果:
'Price: $19.99'