echo
(PHP 4, PHP 5, PHP 7)
echo — 1 つ以上の文字列を出力する
説明
echo
( string $arg
, string ...$args
) : void
すべてのパラメータを出力します。末尾に改行を付加することはありません。
echo
は実際には関数ではありません
(言語構造です)。このため、使用する際に括弧は必要ありません。
(いくつかの他の言語構造と異なり) echo
は関数のように動作しません。そのため、
関数のコンテキスト中では常に使用することができません。
加えて、複数のパラメータを指定して echo
をコールしたい場合、括弧の中にパラメータを記述してはいけません。
echo
には、開始タグの直後に等号を付ける短縮構文もあります。
この短縮構文は、PHP 5.4.0 より前のバージョンでは設定オプションshort_open_tag
が有効な場合しか使えません。
I have <?=$foo?> foo.
print
との主な違いは、
echo
がリスト形式の引数を受け付け、返り値を持たないことです。
パラメータ
arg
- 出力したいパラメータ。
args
返り値
値を返しません。
例
例1 echo
の例
<?phpecho "Hello World";// 複数の文字列をそれぞれ別の引数として渡しても、// すべて連結してひとつの引数として渡してもかまいませんecho 'This ', 'string ', 'was ', 'made ', 'with multiple parameters.', chr(10);echo 'This ' . 'string ' . 'was ' . 'made ' . 'with concatenation.' . "\n";// echo は関数のように動作しないので、以下のコードは正しくありません($some_var) ? echo 'true' : echo 'false';// しかし、次の例は動作します($some_var) ? print 'true' : print 'false'; // print も言語構造ですが、 // 関数のように動作します。なので、 // このコンテキスト中で使用できますecho $some_var ? 'true': 'false'; // 命令を変更?>
注意
注意:
これは、関数ではなく言語構造のため、可変関数 を用いて コールすることはできません。
ヒント 複数の文字列をひとつに連結せずそのまま echo に渡す利点は、PHP におけるピリオド演算子の優先順位にあります。 複数の引数として渡す場合は、優先順位を考慮して括弧で囲んだりする必要はありません。
<?phpecho "Sum: ", 1 + 2;echo "Hello ", isset($name) ? $name : "John Doe", "!";
連結を使う場合は、ピリオド演算子の優先順位が加算演算子とは同じで、 三項演算子よりも高いことに注意する必要があります。 そのため、以下のような場合に期待どおりの動きをさせるためには括弧が必要になります。
<?phpecho 'Sum: ' . (1 + 2);echo 'Hello ' . (isset($name) ? $name : 'John Doe') . '!';