©
本文档使用 PHP中文网手册 发布
[#1] purkrt at gmail dot com [2015-03-15 13:18:04]
I would like to stress out that the opening tag is "<?php[whitespace]", not just "<?php". While this might seem blatantly obvious, I thought for some time that
<?php echo "a"?>
would work, and it does not; the comment does not work as whitespace. I've run into this while converting some older code with short open tag.
[#2] mario [2014-11-08 21:06:21]
A few related notes, partly covered elsewhere in the manual:
?? Since PHP 5.4 the inline echo
<?php= ?>
short tags are always
enabled regardless of the short_open_tag (php.ini) setting.
?? PHP tags are infrequently also referred to as open/close "tokens"
(as per the tokenizers T_OPEN_TAG / _ECHO, and T_CLOSE_TAG naming).
?? The historic ASP-style <% %> and even more rarely used
<script language=PHP></script> tags are to be repealed in PHP7.
http://wiki.php.net/rfc/remove_alternative_php_tags
There also exists a small tool called "phptags tidier" for consistently rewriting PHP short/long tags. It's suitable to normalize include and template scripts, e.g. employ the always-enabled long <?php ?> tags, and/or relieve whitespace padding before/after PHP tags:
phptags --long --whitespace --warn *.php
Instead of reliably fixing the common whitespace/BOM issues around tags, it can also just remove all ?> close tags with `--unclose --tokenizer` as advised afore.
[#3] alexander dot podgorny at somewhere dot com [2014-10-10 16:28:57]
One reason to use long tags over short is to avoid confusion with
<?phpxml ?>
notation.
[#4] preda dot vlad at yahoo dot com [2013-03-12 09:14:10]
So here are the valid ways to open PHP tags:
<?php ?>
// standard tags
<?php ?>
// short tags, need short_open_tag enabled in php.ini
<% %> // asp tags, need asp_tags enabled in php.ini
<script language="php"> </script> // case insensitive
PSR-1 coding standards suggest to only use
<?php ?>
or
<?php= ?>
(echo short tags) - and no other variations, and PSR-2 suggests to not close the tags in PHP only files.