🌊

PHP sprintf関数とは

2021/04/07に公開

sprintf関数とは

sprintf関数は「あるフォーマットに従った文字列を返す」関数

sprintfの書き方
sprintf関数は、以下のように記述します。

sprintf(文字列のフォーマット, 入力したい文字1, 入力したい文字2, ・・・)
文字列のフォーマットに関しては様々な書き方があるため、ここではよく使われるもののみを紹介します。基本的な使い方は同じです。

先程の例でご説明すると、 「(名前)君は(食べ物)を(個数)個食べました。」に「名前」「食べ物」「個数」を入れたいので

"%s 君は %s を %d 個食べました。"
と書きます。
**「%s」には文字列を、「%d」には数値を代入することができます。ですので、

太郎 君は りんご を 7 個食べました。
という文章を作成したい場合には、

sprintf("%s 君は %s を %d 個食べました。", "太郎", "りんご", 7)
と書くことで、「太郎 君は りんご を 7個食べました。」という文字列が返ります。

%sや%d以外にも、「%f」は浮動小数点数や「%u」は符号なしの整数などを設定できます。

format1.php
<?php
$format = %s 君は %s を %d 個食べました。\n";

echo sprintf($format, "太郎", "りんご", 7);
echo sprintf($format, "ジョン", "ドーナッツ", 100);

実行結果

太郎 君はりんごを7個食べました。
ジョン 君はドーナッツを100個食べました。

まsprintf関数の使用方法として、「ゼロ埋め」という使い方があります。
例えば、学籍番号で1番の人を「0001」のように表記したい場合があるとする。
これもsprintf関数で実装できる。

format2.php
<?php
// %0(桁数)d と指定することで、左側に0を埋めてくれる。
$format ="あなたの学籍番号は、 %05d です。\n";
print(sprintf($format, 1))
print(sprintf($format, 1234))
?>

実行結果、

あなたの学籍番号は、00001 です。
あなたの学籍番号は、01234 です。

Discussion