【PHP】文字列の出力は、echo または printで
PHPで文字列を出力する際には、echoとprintの二つの関数が用意されていますよね。
※正確には、echoもprintも関数ではありません。
私は主にechoを使います。
理由は単純で、初めて買った参考書がechoを使っていたから!!
それはいいとして、実際には、echoとprintのどちらを使うのが正しいの?
そもそも、この二つの関数の違いは?
といった疑問をお持ちの方も多いと思います。
そこで、今回は、これらの疑問に対してお答えしていきます。
因みに、有名な違いはこちらです。
printはリターンコードを返してくれますが、echoは返してくれません!!
echoは「カンマ(,)」で区切って複数の文字列を同時に出力できます!!
printはリターンコード(返り値)を返してくれる
例えば、
<?php
$ret = print (“テスト”;)
echo $ret;
?>
というコードを書いてみます。
もし、このコードがエラーになっていると、変数$retにリターンコード「1」が返ってきていると思います。
echoは「カンマ(,)」で区切って複数の文字列を同時に出力できます
echoを使うと、カンマ(,)をで区切ることで、複数の文字列を出力することが出来ます。
↓
例えば、
<?php echo “テスト1\n”, “テスト2\n”, “テスト3\n”; ?>
を実行すると、
「テスト1 テスト2 テスト3」と表示されるはずです。
ただ、printは、このような使い方をできません。
↓
例えば、
<?php print “テスト1\n”, “テスト2\n”, “テスト3\n”; ?>
とすると、エラーになるはずです!!
もちろん、他にも違いがあります。
↓
if(){~}の中でも使用が可能
まずこのような使いをすることは無いですが、printはこんな使い方も可能です。
<?php
if(print “TEST”){
print (“テストです”);
}
?>
他にも、echoとprintの違いはあるのですが、その辺は調べてみて下さい。
echoよりもprintの方が高速?
ところで、リターンコードを返すということは、printの方が処理が遅いはずです!!
※実際に測定した訳ではないので、正確なことは分からないですが。
ただ、余程の回数を繰り返すような処理でもない限り、プログラム全体に影響を及ぼすことは無いです。
echoとprintのどちらを使えばいい?
結局、echoとprintのどちらを使えばいいの!?
ってなるとと思います。
ですが、正直なところ、どちらでも問題ないです。
それぞれ個人の好き嫌いで決めればいいと思います。
例えば、
echoの方が1文字少ない!! とか、
printっていう綴りがなんか気にくわへん!! とか、
いやいやechoってなんか好きになれへん!! とか、
そんな感じで。
echoもprintも関数ではありません
初めに少し触れましたが、echoもprintも、実際には関数ではありません。
参考:https://www.php.net/manual/ja/function.echo.php
参考:https://www.php.net/manual/ja/function.print.php
その為、echoもprintも「カッコ()」でくくらなくてもOKです。
例えば、
<?php
$a = “テスト”;
echo “{$a}です。”;
?>
といった感じで使うことが出来ます。