はじめに
文字列を出力するのって、echoがいいの?printがいいの?
結論としてはechoが一般的なようです。
理由としては、一番動作が軽いということですね。
以下、echoとprintの共通点と相違点を少しまとめてみました。
PHPコード
<?php
$text = 'テキスト';
//echoとprintはほぼ同じ、どちらも変数展開できます。
echo "1、echoで{$text}出力<br>";
print "2、printで{$text}出力<br>";
//違いとしては、printは変数に返り値を代入できます。
$dummy = print '3、$dummy = print:';
echo "dummyに「{$dummy}」が代入されました。<br>";
//if文を使えば、正常に動作したかどうかで分岐できます。
if($dummy2 = print '4、if($dummy2 = print "ーー"):'){
echo 'テキストを出力してから、その後の処理を行います。<br>';
}
else{
echo '正常に代入されませんでした。<br>';
}
?>
出力結果
1、echoでテキスト出力
2、printでテキスト出力
3、$dummy = print:dummyに「1」が代入されました。
4、if($dummy2 = print “ーー”):テキストを出力してから、その後の処理を行います。
2、printでテキスト出力
3、$dummy = print:dummyに「1」が代入されました。
4、if($dummy2 = print “ーー”):テキストを出力してから、その後の処理を行います。
解説しよう。
echoとprintはほぼ同じ動き
コードの中にもコメントアウトで書きましたが、
「echoとprintはほぼ同じ、どちらも変数展開できます」。
「変数展開ってなに?」というかた、これ超便利ですので、後ほど解説しますね。
print文は変数に代入できる。
できます。
$dummy = print '3、$dummy = print:';
こんな感じですね。
「なんのために?」という意見もありますが、できるもんはできます。
【応用】if文(条件分岐)との合わせ技。
先ほどの変数代入の応用です。
$dummyという変数に「1」(true)が代入されます。
PHPだけではないですが、よく使う概念として、真偽を表す「true」と「false」があります。PHPの場合、「true」は「1」として表され、「false」は「””」(値なし)として表されます。
ということで、if文の条件の部分にprint文を入れ込んであげると、下の順序でプログラムが作動します。
- print文によって文字列が出力される
- 文字列出力が正常に行われたので返り値として「1」が返される
- if文の条件が成立する
- {}内の処理が行われる
まあ、print文は複雑な動作をするわけではないので、あまり使う場面はないかもしれませんが、if文と返り値のtrueかfalseの値を使ってチェックしながら進め書き方は、色々な場面で使うことになります。
まとめ
echoとprintはほぼ同じ動きをします。
ただ、printの方が少し機能が多いです。
そのため、echoの方が余計なことをしないぶん、処理時間が短いということなんですね。
PHPの勉強はこの本が便利!
[itemlink post_id=”3929″]
コメント