ヒアドキュメント構文
<<<"識別子"
~任意の文字列~
識別子;
~任意の文字列~
識別子;
複数行の文字列をヒアドキュメントで作成
これから"PHPのヒアドキュメント構文"の書式を覚えよう。 ソースコード参照だよ!<?php
$document = "ヒアドキュメント構文";
$msg = <<<"EOD"
これから"PHPの$document"の書式を覚えよう。
ソースコード参照だよ!
EOD;
echo $msg;
?>
Nowdoc構文
ヒアドキュメント構文とは違い、文章内の変数を展開しません。ヒアドキュメントはダブルクォートで囲まれた文字列
Nowdocはシングルクォートで囲まれた文字列
複数行の文字列をNowdocで作成
これから"PHPの$documentN"の書式を覚えよう。 ソースコード参照だよ!<?php
$document = "Nowdoc構文";
$msg = <<<'EOD'
これから"PHPの$documentN"の書式を覚えよう。
ソースコード参照だよ!
EOD;
echo $msg;
?>
フォーマット文字列 printf()
printf('フォーマット文字列',値1,値2,...,値n)
型指定子
型指定子 | 意味 |
---|---|
% | パーセント文字。引数は不要 |
d | 引数を整数として扱う。10進数で表現 |
u | 引数を整数として扱う。符号なしの10進数で表現 |
F | 引数をfloatとして扱う。浮動小数点数として表現 |
s | 引数を文字列として扱う。 |
x | 引数を整数として扱う。16進数の(小文字で)表現 |
X | 引数を整数として扱う。16進数の(大文字で)表現 |
円周率の少数第3位までを出力する
3.1415926535898円周率は3.142です。
<?php
echo M_PI; //円周率を出力
echo "<br>", PHP_EOL; //改行
printf('円周率は%.3fです。', M_PI); //フォーマット文字列を指定
?>
フォーマット文字列を変数で指定
最大値18.9,最小値12.3<?php
$format = '最大値%.1f,最小値%.1f';
$a = 18.89;
$b = 12.33;
printf($format,$a,$b);
フォーマット文字列の構文と書式修飾子
'...%書式修飾子 型指定子...'
パディング指定子
足りない分を埋める文字を指定。
※空白か0以外の文字指定には、全体をダブルクォートで囲み、埋める文字の前にシングルクォートを置く
足りない部分を0と*で埋める
2021-09-01経費は**7890円です
<?php
$year = 2021;
$month = 9;
$day = 1;
$en = 7890;
printf('%04d-%02d-%02d', $year, $month, $day);
echo "<br>", PHP_EOL; //改行
printf("経費は%'*6d円です", $en);
アラインメント指定子
パディング指定子で埋める際に、値を左寄せにするか右寄せにするかを指定する。
桁の数字前に-で左寄せ、+で右寄せ
精度指定子
ピリオドに続いて小数点以下の桁数を指定します。浮動小数点の場合は桁数で四捨五入し、文字列の場合は文字数で切り捨てる。
フォーマットされた文字列を返す sprintf()
sprintf()はフォーマット文字列を適用した文字列を返す関数です。フォーマット後の文字列を変数などに代入できます。フォーマット済みの文字列を変数に入れて扱う
商品ナンバーは、2021000892-RRです。<?php
$tosi = 2021;
$seq = 892;
$type = "RR";
$id = sprintf('%04d%06d-%s', $tosi, $seq, $type);
echo "商品ナンバーは、", $id, "です。";
置換する値を配列で指定
文字列の中に置換する配列が複数個あるときprintf()の代わりにvprintf()を使うと値を配列で指定できる。同様にsprintf()に対してvsprintf()がある。フォーマット文字列の%を配列の値で置換
最大値18.8、最小値11.1、平均値14.95<?php
$max = 18.77;
$min = 11.12;
$ave = 14.945;
$data = array($max, $min, $ave); //置換する配列
$formatt = '最大値%.1f、最小値%.1f、平均値%.2f'; //値を置換して表示
vprintf($formatt, $data);