Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
echo / print / printf()対応: PHP 4(2000)
PHPで値を出力するための基本的な構文と関数です。デバッグやHTML生成など、あらゆる場面で使用します。
構文
// 1つ以上の値を出力します。戻り値はありません。 echo 値1, 値2, ...; // 1つの値を出力します。常に『1』を返します。 print 値; // フォーマット指定で直接出力します。 printf(フォーマット文字列, 値1, 値2, ...); // フォーマット指定で文字列を生成して返します。 sprintf(フォーマット文字列, 値1, 値2, ...);
構文一覧
| 構文・関数 | 概要 |
|---|---|
| echo | 1つ以上の値を出力する言語構造です。関数ではないため括弧は不要ですが、付けても動作します。戻り値はなく、最も高速な出力方法です。 |
| 1つの値を出力する言語構造です。常に『1』を返すため、式の中で使用できます。 | |
| printf($format, ...) | フォーマット文字列に従って値を整形し、直接出力します。出力した文字列の長さを返します。 |
| sprintf($format, ...) | フォーマット文字列に従って値を整形し、文字列として返します。出力は行いません。 |
主なフォーマット指定子
| 指定子 | 概要 |
|---|---|
| %s | 文字列として出力します。 |
| %d | 整数として出力します。 |
| %f | 浮動小数点数として出力します。『%.2f』のように小数点以下の桁数を指定できます。 |
| %05d | 5桁のゼロ埋めで整数を出力します。 |
| %% | 『%』をそのまま出力します。 |
サンプルコード
<?php
// echo で文字列を出力します。
echo "Hello, World!"; // 『Hello, World!』と出力されます。
// echo はカンマ区切りで複数の値を出力できます。
echo "名前: ", "太郎", " 年齢: ", 25; // 連結して出力されます。
// print は1つの値だけ出力でき、戻り値は常に『1』です。
$result = print "PHP\n";
echo $result; // 『1』と出力されます。
// 変数展開はダブルクォートの中で使用します。
$lang = "PHP";
echo "言語: $lang"; // 『言語: PHP』と出力されます。
echo '言語: $lang'; // シングルクォートでは変数展開されません。
// printf() でフォーマット指定して出力します。
$price = 1980;
$tax = 0.1;
printf("税込価格: ¥%s", number_format($price * (1 + $tax))); // 『税込価格: ¥2,178』と出力されます。
// sprintf() は出力せずに文字列を返します。
$formatted = sprintf("%s さんの得点は %d 点です。", "田中", 85);
echo $formatted; // 『田中 さんの得点は 85 点です。』と出力されます。
// ゼロ埋めや小数点以下の桁指定の例です。
echo sprintf("注文番号: %05d", 42); // 『注文番号: 00042』と出力されます。
echo sprintf("割引率: %.1f%%", 12.5); // 『割引率: 12.5%』と出力されます。
// 日付のフォーマット例です。
echo sprintf("%04d-%02d-%02d", 2026, 3, 4); // 『2026-03-04』と出力されます。
概要
『echo』はPHPで最も頻繁に使われる出力方法です。言語構造であるため関数呼び出しのオーバーヘッドがなく、カンマ区切りで複数の値を出力できるため連結演算子『.』よりもわずかに高速です。『echo』と『print』の違いは、『print』が戻り値『1』を返す点のみです。特別な理由がなければ『echo』を使用してください。
『printf()』と『sprintf()』はC言語由来のフォーマット関数で、数値のゼロ埋めや小数点以下の桁指定など、細かい整形が必要な場面で活躍します。『printf()』は直接出力し、『sprintf()』は文字列として返すため、変数に格納したり他の関数に渡す場合は『sprintf()』を使います。
変数のデバッグ出力には『var_dump()』、出力バッファリングについては『ob_start()』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。