开发者

Why is echo faster than print?

开发者 https://www.devze.com 2023-01-14 09:12 出处:网络
In PH开发者_StackOverflowP, why is echo faster than print? They do the same thing... Why is one faster than the other?

In PH开发者_StackOverflowP, why is echo faster than print?

They do the same thing... Why is one faster than the other?

Do they do exactly the same thing?


echo and print are virtually (not technically) the same thing. The (pretty much only) difference between the two is that print will return the integer 1, whereas echo returns nothing. Keep in mind that neither is actually a function, but rather language constructs. echo allows you to pass multiple strings when using it as if it were a function (e.g., echo($var1, $var2, $var3)).

echo can also be shorthanded by using the syntax <?= $var1; ?> (in place of <?php echo $var1; ?>).

As far as which is faster, there are many online resources that attempt to answer that question. PHP Benchmark concludes that "[i]n reality the echo and print functions serve the exact purpose and therefore in the backend the exact same code applies. The one small thing to notice is that when using a comma to separate items whilst using the echo function, items run slightly faster."

It will really come down to your preference, since the differences in speed (whatever they actually are) are negligible.


Print always returns 1, which is also probably why it's slower


Print has a return value, this is the only difference.

The speed difference (if any) is so miniscule that it's not worth the effort thinking about micro optimisations like this, and it's absolutely not worth updating any old code to switch prints to echos. There are much better ways to speed up your site, if this is your goal.


As my experience and knowledge, You are wrong. print is faster than echo in the loops autobahn and hypertexts.

Which is faster?

I'm implementing a test that shows the difference between print and echo.

$start = microtime(1);
for($i = 0; $i < 100000; $i++)
    echo "Hello world!";

echo "echo time: " . round(microtime(1) - $start, 5);

$start = microtime(1);
for($i = 0; $i < 100000; $i++)
    print "Hello world!";

echo "print time: " . round(microtime(1) - $start, 5);

result:

echo time: .09
print time: .04

Another reference is phpbench that shows this fact.

Comparision

Now its time to investigate that why print is faster than echo. When you are using loops, of course, php checks if echo has multiple values to print or not, but always print can take only one parameter and it's not needed to be checked in loops. also when there are multiple values for echo bad things come through, like converting them to string and streaming them, I do believe that in huge hypertexts these problem come through too because you are forcing php to process before printing. But in small jobs like printing, only a small string echo I good (if you consider concatenations) because it doesn't return anything like print.

0

精彩评论

暂无评论...
验证码 换一张
取 消