Is there a speed difference between <?php echo

2019-01-15 07:22发布

问题:

Is there any speed difference between these two versions?

<?php echo $var; ?>

<?=$var?>

Which do you recommend, and why?

回答1:

Performance difference is insignificant. Moreover, with use of APC, performance difference is zero, null, nada.

<?=$var?> requires short tags activated. Short tags are problematic within XML, because <? is also markup for XML processing tag. So if you're writing code that should be portable, use the long form.

See short_open_tag description in http://www.php.net/manual/en/ini.core.php



回答2:

Technically the parser has to parse every character of the longer version, and there's a few more characters for every transfer.

If your webserver doesn't "pre-compile" (ie: cache tokenized PHP pages) then there is a slight performance difference. This should be insignificant except, perhaps, when you start talking about billions of runs.

-Adam



回答3:

Performance wise it is insignificant.

Proper usage says to use the longer one, as it is more portable. Personally? I do the shorter one.



回答4:

in php 5.3 short tag ASP-style <% %> support will be deprecated, try to avoid this and rewrite the code to the '<?php echo' format, because u cant use <?xml ?> inline for example.



回答5:

No, they are identical. If you like typing a lot use <?php echo $var; ?>, otherwise just save time with <?=$var?>.



回答6:

I think the second one requires the short_open_tag (in PHP.ini) to be set to true.

Meaning there is a chance it's turned off on some webservers.



回答7:

Which do you recommend

Neither, unless you really want to allow HTML injection. (99% of the time, you don't.)

<?php echo htmlspecialchars($var); ?>

Or define a function that does echo(htmlspecialchars($arg)) with a shorter name to avoid all that typing.



回答8:

The speed difference depends on how fast you can type those 9 extra characters.
It can also improve the readability of your code, but this is debatable.

If your talking about execution-speed there is no noticable difference.



回答9:

Don't try to optimize with these, it's useless. Instead, deactivate allow_short_tags (because of problems when loading XML files) and write clean, readable and understandable code.

Even if there may be a slight difference (which is definitely lower than 10%), it's useles to optimize with it. If your scripts are slow, look at your loops first. Most of the time you can win a lot more performance by optimizing the programms flow than by using strange syntax.