phpにおいて文字列を出力する際に利用する「echo」と「print」ですが、
この違いについて気にした事が無かったので、
それぞれの違いと速さについても調べてみました。
echoについて
1 つ以上の文字列を出力する
構文
void echo ( string $arg1 [, string $... ] )
返り値(戻り値)
値を返さない
printについて
文字列を出力する
構文
int print ( string $arg )
返り値(戻り値)
常に1を返す
echoとprintの違い
echoは引数を複数(「,」区切りで)渡す事が出来ますが、
printは単一の引数のみしか渡す事が出来ません。
またechoは返り値を返却しませんが、
printは必ずintの「1」を返却します。
どちらの方が速いの
返り値を返却しない分echoの方が若干出力スピードが速いという記事がありましたので、
echoとprintをそれぞれ10万回×10周=計100万回「TEST」と出力する実験をしてみました。
echo | ||
---|---|---|
1周目 | 4.257359982秒 | 4.487354994秒 |
2周目 | 5.342820883秒 | 4.754317045秒 |
3周目 | 4.628118992秒 | 4.995100021秒 |
4周目 | 4.63323617秒 | 4.058238029秒 |
5周目 | 3.925617933秒 | 4.280804157秒 |
6周目 | 3.909049034秒 | 3.923098087秒 |
7周目 | 3.805972099秒 | 4.750500202秒 |
8周目 | 3.867604971秒 | 4.91630888秒 |
9周目 | 3.795361996秒 | 4.294229984秒 |
10周目 | 3.848227024秒 | 4.028221846秒 |
合計 | 42.01336908秒 | 44.48817325秒 |
100万回出力してわずか2秒の差なので、
若干echoの方が速いようです。
まとめ
echo | ||
---|---|---|
引数 | 複数渡せる | 複数渡せない |
返り値(戻り値) | 返さない | 必ず1を返す |
速度 | ちょっと速い | ちょっと遅い |