PHPの初心者で必ず気になるのがechoとprintの違いだと思います。
はじめに
PHPを勉強中、気になったのがechoとprintの違いです。サイトによってはprintを使っていたり、echoを使っていたりしたので、結局どちらを使えば良いのかわかりませんでした。
echoとprintを出力してみる
echo 'あいうえお'; print 'あいうえお';
この2つはどちらも「あいうえお」と出力されます。ただし、文字を連結させる時に違いが出てきます。
echo 'あいうえお'.'かきくけこ','さしすせそ'; print 'あいうえお'.'かきくけこ'.'さしすせそ';
文字列の連携の場合
- echoは「(.)ドットと(,)カンマ」どちらでも使える
- printは「(.)ドット」しか使えない
って事はechoのがechoで連結する際に.(ドット)と,(カンマ)の違いについてからしたら相性よさそうですね。
関数を使う場合も同じです。
$aiueo = 'あいうえお'; $kaiueo ='かきくけこ'; $saiueo ='さしすせそ'; echo $aiueo.$kaiueo,$saiueo; print $aiueo.$kaiueo.$saiueo;
逆にprintを使う時のポイントは何だだろうと思い、調べてみました。
printには戻り値がある
printには戻り値があるって色々なサイトに書かれている。戻り値は「1」がどうたらこうたら・・・
初心者にはこれが何かわからない。笑
逆にこの戻り値を使う時ってどんな時やろうと考えてみた。
戻り値を表示させる?方法
$aiueo = print'あいうえお'; $kaiueo ='かきくけこ'; $saiueo ='さしすせそ'; echo $aiueo.$kaiueo,$saiueo;
$aiueoにprintを加えて出力すると「あいうえお1かきくけこさしすせそ」とあいうえおの後に数字の「1」が表示されます。
この数字が戻り値ってやつです。今知っている知識を使うと
$aiueo = print'あいうえお'; $kaiueo ='かきくけこ'; $saiueo ='さしすせそ'; if ($aiueo == 1) { echo $aiueo.$kaiueo,$saiueo; }
こんな感じでif文と組み合わせると使えそうです。
ただ、この内容も意味不明っちゃ意味不明か笑
この戻り値はもっと勉強した先に使い方がわかるはず・・・。
今はここまででとどめておきます。
速度計算
速度については「echo」の方が早いと言われていますが、速度計算をしているサイトは「print」の方が結果早かったと言うデータを出しています。
そこで自分も気になるので調べてみました。
私は「XAMPP」を使っています。これだとレンタルサーバのように環境によって左右されないかなと思ったからです。
XAMPPで処理速度の調べ方
http://localhost/dashboard/phpinfo.php
「XAMPP」をスタートさせた状態で、こちらにアクセスすると現在のバージョンが見ることが出来ます。
私の使用しているバージョンは「PHP Version 7.3.10」です。
$count = 1000000; // echoでの出力 $time_start = microtime(true); for ($i = 0; $i < $count; $i++) { echo $i; } $time = microtime(true) - $time_start; echo '<br>'; echo 'echo:'. $time . ' seconds'; echo '<br>'; // printでの出力 $time_start = microtime(true); for ($i = 0; $i < $count; $i++) { print $i; } $time = microtime(true) - $time_start; echo '<br>'; echo 'print:'. $time . ' seconds';
速度計測の情報はこちらのサイトを参考にしました。
速度の結果
一回目 | echo:3.4592049121857 seconds print:29.919713020325 seconds |
---|---|
二回目 | echo:4.2808408737183 seconds print:78.19615316391 seconds |
三回目 | echo:4.7929420471191 seconds print:26.51144194603 seconds |
結果に違いが出すぎているのでechoとprintを出力する順番を変えてみました。
一回目 | print:4.1556191444397 seconds echo:25.505042076111 seconds |
---|---|
二回目 | print:3.7798089981079 seconds echo:40.960448980331 seconds |
三回目 | print:0.50496506690979 seconds echo:79.841722011566 seconds |
結果的に最初に出力された方が圧倒的に早くなっているので、最初の数字だけを見比べた結果、特に大きな差はないって事で良いのかな。
さいごに
echoの方が多かった気がする
ワードプレスはコピペであればある程度いじれるのですが、いじっている時もprintよりはechoを使っている人が多かった記憶があります。
どちらでも良いのであればechoをメインに使っていこうかな。