あなたは『echo』派?それとも『print』派?

PHPでブラウザーで文字を出力するときに必ず使う2つの『echo』と『print』の話しです。
みなさんはどちらの関数命令を使う人ですか?両方の人とかいるんかな。
ちなみに私は『echo』派です。たまに『print』派と遭遇します。

※ echoは関数ではなく「言語構造」のようです。指摘して頂き、ありがとうございます!m(__)m

echo は実際には関数ではありません (言語構造です)。このため、使用する際に括弧は必要ありません。 (いくつかの他の言語構造と異なり) echo は関数のように動作しません。そのため、 関数のコンテキスト中では常に使用することができません。 加えて、複数のパラメータを指定して echo をコールしたい場合、括弧の中にパラメータを記述してはいけません。
http://php.net/manual/ja/function.echo.php

コピペプログラマーのWordPressのテンプレートを見たら、両方書かれていることがあり、『ああぁ、色なところからコピペしてきたんだなぁ〜』って思う時があります。

で、初心者講習会でも少しプログラムを書ける人が参加するしてると『echo』と『print』って何が違うんですか?って質問がきますー。
※Perl言語では、確かechoがなかったのでprintを使うことになり、昔からCGIとかをPerlで組んでるた方はprint派の人が多いのかな?と思います。

で、私もあまり厳密に知らなかったので、調べてみました。

基本的には一緒

『ブラウザーに文字を出力する』ってことに関しては一緒です。なので、好きな方を使ってください。

[php] <!DOCTYPE html>
<html lang=”ja”>
<head>
<meta charset=”UTF-8″>
<title>PHPってそんなに難しくないかも?</title>
</head>
<body>

<p>・Echoの場合:<?php echo “薬アレルギーは怖いよ!”; ?></p>

<p>・printの場合:<?php print( “薬アレルギーは怖いよ!”); ?></p>

</body>
</html>
[/php]

ブラウザーではこんな感じで表示されます。

スナップショット 12:11:29 19:35

大きく違うところ

気にするほどでもないですが、違うところと言えば、

printには戻り値がある

printには戻り値があります。成功すると1(true)が返ってきます。失敗すると0(false)が返ってきます。
こんな感じです。

[php] <!DOCTYPE html>
<html lang=”ja”>
<head>
<meta charset=”UTF-8″>
<title>PHPってそんなに難しくないかも?</title>
</head>
<body>

<p>・printで出力:<?php $output = print( “薬アレルギーは怖いよ!”); ?></p>
<p>・戻り値の中を出力:<?php print($output); ?></p>

</body>
</html>
[/php]

スナップショット 12:11:29 19:39

処理スピードを比較するとprintはechoより戻り値を返してくる分スピードが遅くなります。
※まぁ、あまり言うほど変わらないと思います。

echoはカンマ区切りで文字を連結可能

逆にechoにしか出来ないことは、引数を複数渡すことが可能です。
要はカンマ区切りで文字列を渡すことにより連結した文章を出力してくれます。
こんな感じです。

[php] <!DOCTYPE html>
<html lang=”ja”>
<head>
<meta charset=”UTF-8″>
<title>PHPってそんなに難しくないかも?</title>
</head>
<body>

<p>今日の日付を出力:<?php echo “現在”, date(‘Y-m-d’),”です。” ?></p>

</body>
</html>
[/php]

ブラウザーではこう見えます。

スナップショット 12:11:29 19:47

カンマで区切った文字が連結されてますね^^

でも文字列の連結するときは、私はいつも『.』ドットを使っちゃいますが・・・

カテゴリー: PHPタグ:

7 thoughts on “あなたは『echo』派?それとも『print』派?

  1. ピンバック: プログラミング参考サイト | android manifest configChanges

  2. ピンバック: 140219訓練 | とりあえずUnity

  3. ピンバック: 11月5日(水)講義内容-実技(PHPプログラミング基礎⑥)3H/実技(作課題演習Ⅰ)⑥ 2H – | B教室夜間部のページ

  4. 通りすがり 返信する

    > みなさんはどちらの関数を使う人ですか?

    echoもprintも関数ではありません。

  5. ピンバック: 8月20日(土)PHPプログラミング演習14 | インタープランITスクール新横浜校

  6. ピンバック: RNI - المهندسون المغاربة

  7. Chester Snetsinger 返信する

    You could definitely see your skills within the work you write. The arena hopes for more passionate writers like you who are not afraid to say how they believe. Always follow your heart. “What power has law where only money rules.” by Gaius Petronius.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です