【PHPマニュアル】printfの説明と使い方

【PHPマニュアル】printfの説明と使い方
この記事は約6分で読めます。

どうもタスです。

今回は、PHPのprintf関数についての説明と使い方をお伝えします。

printfは、ログ出力など出力形式を統一したい場合などに重宝する関数ですので、特にフォーマット方法について熟知し使えるようにしましょう!

なお、文字列をフォーマットする関数はprintf以外にも数種類あり、以下の記事で類似点と相違点をまとめています。

 

概要説明

【PHPマニュアル】説明と使い方

フォーマット済みの文字列を出力する

 

構文説明

【PHPマニュアル】説明と使い方

〈引数〉string $format:フォーマット文字列

〈返り値〉出力した文字列の長さ

 

詳細説明

【PHPマニュアル】説明と使い方

printfは、指定したフォーマット文字列の形式で文字列を返す関数です。

フォーマット次第では、引数を複数指定しても構いません。

具体的なフォーマット方法は以下の通りです。

 

フォーマット文字列

【PHPマニュアル】説明と使い方

フォーマット文字列は、出力したい文字列と変換指定子(conversion specifications)で表現します。

各変換指定子は、パーセント記号(%)に続けて以下の要素を記述したものとなります。

 

符号指定子

【PHPマニュアル】printfの説明と使い方

数値で符号を使用する場合に指定します。

指定しなければ、負数の場合の「-」符号のみが付加されますが、指定した場合は整数の場合の「+」も強制的に付加されます。

なお、以下の例の「%%」は、パーセント文字をエスケープするためのものです。

 

出力例

「%+dフォーマット」 = ‘+100’

「%+dフォーマット」 = ‘-100’

 

パディング指定子

【PHPマニュアル】printfの説明と使い方

文字列を必要な長さまでどの文字で埋めるかということを指定します。

パディング文字は空白文字もしくは「0」のいずれかで、デフォルトでは空白文字で埋めます。

なお、上記以外の文字列で埋めたい場合は、当該文字列の前に「’」(シングルクォーテーション)を記述します。

以下の例はコマンドラインで実行したものです(HTMLだと空白が省略されるため)。

 

出力例

「%sフォーマット」 = [TasuLife]

「%20sフォーマット」 = [ TasuLife]

「%020sフォーマット」 = [000000000000TasuLife]

「%’@20sフォーマット」 = [@@@@@@@@@@@@TasuLife]

 

アライメント指定子

【PHPマニュアル】printfの説明と使い方

出力文字列を左寄せまたは右寄せにしたい場合に指定します。

デフォルトは右寄せで、左寄せにしたい場合は「-」を指定します。

 

出力例

「%sフォーマット」 = [TasuLife]

「%20sフォーマット」 = [ TasuLife]

「%-20sフォーマット」 = [TasuLife ]

 

表示幅指定子

【PHPマニュアル】printfの説明と使い方

これは指定した数字のことで、出力文字列を最低何桁表示するか指定します。

パディング指定子で指定した「20」がそれにあたります。

 

精度指定子

【PHPマニュアル】printfの説明と使い方

浮動小数点に対して数字を何桁表示するか、文字列の場合は切り捨て位置の指定となり、指定数を超えた文字列は切り捨てられます。

さらに、桁埋めに使用する文字も指定することができます。

指定方法は、「.」以降に数値を指定します。桁埋め文字列は、「.」と数値の間に指定します。

 

出力例

「%fフォーマット」 = [123.456789]

「%.3fフォーマット」 = [123.457]

「%sフォーマット」 = [TasuLife is interesting]

「%.15sフォーマット」 = [TasuLife is int]

 

型指定子

【PHPマニュアル】printfの説明と使い方

指定した引数を何の型として扱うかを指定します。

指定可能な型は以下の通りです。

 

%:パーセント文字。

b:引数を整数として扱い、2進数として表現します。

c:引数を整数として扱い、ASCII値の文字として表現します。

d:引数を整数として扱い、10進数として表現します。

e:引数を科学記法として扱います(例:1.2e+2)。精度の指定子は、PHP5.2.1以降では小数点以下の桁数を表します。それより前のバージョンでは、有効数字の桁数(ひとつ小さい値)を意味していました。

E:%eと同じですが、大文字を使います(例:1.2E+2)。

f:引数をdoubleとして扱い、浮動小数点数として表現します。

F:引数をfloatとして扱い、浮動小数点数として表現します(ロケールに依存しません)。PHP5.0.3以降で使用可能です。

g:%eおよび%fの短縮形。

G:%Eおよび%fの短縮形。

o:引数を整数として扱い、8進数として表現します。

s:引数を文字列として扱い、表現します。

u:引数を整数として扱い、符号無しの10進数として表現します。

x:引数を整数として扱い、16進数として(小文字で)表現します。

X:引数を整数として扱い、16進数として(大文字で)表現します。

 

 

出力例

%b = ‘101111000110000101001110’

%c = ‘A’

%d = ‘12345678’

%e = ‘1.234568e+7’

%E = ‘1.234568E+7’

%f = ‘12345678.000000’

%F = ‘12345678.000000’

%o = ‘57060516’

%s = ‘12345678’

%u = ‘12345678’

%u = ‘18446744073697205938’

%x = ‘bc614e’

%X = ‘BC614E’

 

スポンサーリンク


Pocket


SNSでもご購読できます。

コメントを残す

*

CAPTCHA