リスを倒す 『初めてのPHP,MySQL,JavaScript&CSS』

『初めてのPHP,MySQL,JavaScript&CSS』勉強奮闘記

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関数例


<?php
//フォーマット部分(ここでは%d)が2つ目の引数と交換されて出力
$score = 100;
printf( "得点は%d点です", $score );
?>

結果はこちら。
f:id:taro-blog2323:20160816232734p:plain


1-3.printf関数による精度の設定


printf関数では変換タイプの指定だけでなく、表示する結果の精度を設定することができます。
通常ドル通貨は小数点2桁で表示します($123.45みたいに)が、計算後の結果によっては2桁で収まらないときがあります。($123.42/12=$10.285みたいに)
こういったときに値を内部に正確に保持しつつ、2桁表示にするには%記号と変換指定子の間にストリングの".2"を入れます。

<?php
printf("The result is : $%.2f", 123.42/12);
?>

結果はこちら。
f:id:taro-blog2323:20160816233751p:plain

1-4.出力の空きを埋め合わせ


指定子の前に値を置くことで出力の空きを0やスペースで埋め合わせることもできます。

以下サンプルを見てみます。


<?php
echo "
"; // スペースを表示できるようにする

// 15スペースになるまで空きを埋める
printf("The result is $%15f\n", 123.42 / 12);

// 15スペースになるまで空きを0で埋める
printf("The result is $%015f\n", 123.42 / 12);

// 2桁精度で表示し、15スペースになるまで空きを埋める
printf("The result is $%15.2f\n", 123.42 / 12);

// 2桁精度で表示し、15スペースになるまで空きを0で埋める
printf("The result is $%015.2f\n", 123.42 / 12);

// 2桁精度で表示し、15スペースになるまで空きを#で埋める
printf("The result is $%'#15.2f\n", 123.42 / 12);
?>

結果はこちら。
f:id:taro-blog2323:20160816234921p:plain
同様に文字列を左寄せにしたり右寄せにしたり、埋め合わせする文字を選定したりすることも可能です。


次回は、日付と時刻の関数について勉強します。どこまでできるかわかんないけど実際に色々いじってみたいと思います。
いじょー