7-1. PHP実践①printf関数
ちょっと日があいてしまいましたが、7章入ります。離脱していたわけではないでござる.....21章まで頑張ると決めたんだ。
さて7章では、日付と時刻の高度な管理、ストリング処理を管理する方法、ファイルの作成や読み取りなどのファイル操作、XHTMLマークアップ言語を学びます。
1-1.printf関数とは
echoやprintは単にテキストを出力するだけですが、『printf関数』を使うとストリング内に特殊なフォーマットを入れることで出力形式を制御することができます。
printfに指定するフォーマット文字は、表示にそのフォーマットを使用することを示す引数です。
1-2.printfの変換指定子
以下がprintfで使用できる変換指定子です。
指定子 | 引数argに対する変換動作 | 例(argが123の場合) |
---|---|---|
% | %文字を表示(argは不要) | % |
b | argを2進数整数として表示 | 1111011 |
c | argを表すASCII値の文字として表示 | { |
d | argを符号付10進数整数として表示 | 123 |
e | argを指数表記で表示 | 1.23000e+2 |
f | argを浮動小数点数として表示 | 123.000000 |
o | argを8進数整数として表示 | 173 |
s | argをストリングとして表示 | 123 |
u | argを符号なし10進数整数として表示 | 123 |
x | argを小文字の16進数で表示 | 7b |
X | argを大文字の16進数で表示 | 7B |
printf関数の指定子は、同数の引数を関数に渡し指定子の頭に%記号を付けている限り、いくつでも使用できます。
◎printf関数例
結果はこちら。
1-3.printf関数による精度の設定
printf関数では変換タイプの指定だけでなく、表示する結果の精度を設定することができます。
通常ドル通貨は小数点2桁で表示します($123.45みたいに)が、計算後の結果によっては2桁で収まらないときがあります。($123.42/12=$10.285みたいに)
こういったときに値を内部に正確に保持しつつ、2桁表示にするには%記号と変換指定子の間にストリングの".2"を入れます。
結果はこちら。
1-4.出力の空きを埋め合わせ
指定子の前に値を置くことで出力の空きを0やスペースで埋め合わせることもできます。
以下サンプルを見てみます。
// 15スペースになるまで空きを埋める // 15スペースになるまで空きを0で埋める // 2桁精度で表示し、15スペースになるまで空きを埋める // 2桁精度で表示し、15スペースになるまで空きを0で埋める // 2桁精度で表示し、15スペースになるまで空きを#で埋める
<?php
echo ""; // スペースを表示できるようにする
printf("The result is $%15f\n", 123.42 / 12);
printf("The result is $%015f\n", 123.42 / 12);
printf("The result is $%15.2f\n", 123.42 / 12);
printf("The result is $%015.2f\n", 123.42 / 12);
printf("The result is $%'#15.2f\n", 123.42 / 12);
?>
結果はこちら。
同様に文字列を左寄せにしたり右寄せにしたり、埋め合わせする文字を選定したりすることも可能です。
次回は、日付と時刻の関数について勉強します。どこまでできるかわかんないけど実際に色々いじってみたいと思います。
いじょー