2024年06月13日
PHP関数:sprintf()
この関数の説明
PHP関数の sprintf() は、文字列の中に指定フォーマットの文字、整数及び実数を挿入する関数です。
可変文字列を出力する時に利用します。
関数
sprintf($format , $val ,$val,・・・・)
パラメータ
$format
下記形式でフォーマットを指定します。
%[引数番号$][パディング][表示幅][.桁数]型指定子 |
※%と型指定子以外はオプションで省略可能です。
型指定子
型指定子 | 意味 |
s | 引数は文字列として扱います。 |
d | 引数を整数とし、10進数で表現します。 |
f | 引数を実数として表示します。 |
※上記以外に 2進数表示 や 1.23e+3 の様な科学的記法もありますがここでは説明を省略します。
$val
指定フォーマットに挿入する値
戻り値
フォーマット変換された文字列を戻します。
事例
①型指定子だけを利用した例
<?php $name = '山田太郎'; $no = 121; $format = '%sさんは、%d番目の当選者です。'; echo sprintf($format , $name , $no); ?>
■5行目:引数は順番に$formatに割り振られます。
■下記が出力されます。
山田太郎さんは、121番目の当選者です。
②[引数番号$]を指定した例
引数番号は何番目の引数を使うのか?を指定するフォーマットです。数字の後ろに$を付けます。
<?php $format = '山田さんは %2$s で、田中さんは %1$s です。'; echo sprintf($format , '金' , '銀' , '銅').'<br>'; ?>
■下記が出力されます。
山田さんは 銀 で、田中さんは 金 です。
③[パディング][表示幅]を指定した例
受験番号や月や日の桁数を合わせる等は数字の前に0を付与して桁数を合わせます。
下記は数字を2桁表示にした例です
<?php $val1 = 1; $val2 = 12; echo '$val1='.sprintf('%02d',$val1).'<br>'; //01になります。 echo '$val2='.sprintf('%02d',$val2); //12のままです。 ?>
■上記の結果は下記が表示されます。
$val1=01
$val2=12
■上記の'%02d'は
パディング:0 (表示幅2より小さい場合は数字の前を0で埋める事を指示しています。)
表示幅:2 (整数の表示幅は2桁と定義しています。)
型指定子:d(引数は整数で処理しなさいと定義しています。)
④数字操作の例
<?php $data = 1234.567; echo sprintf('整数値は %d です。',$data).'<br>'; echo sprintf('小数点以下2桁表示は %.2f です。',$data).'<br>'; ?>
■3行目:整数表示を指定しているので、少数点以下は切り捨てになります。
1234が表示されます。
■4行目:小数点以下は2桁表示(.2)を指定しています。
123.57が表示されます。(小数点以下の3桁目は四捨五入されています)
関連情報
関連関数は 文字列で操作する関数 を参照してください。