同 C 或 Perl 一样,PHP 需要在每个语句后用分号结束指令。一段 PHP 代码中的结束标记隐含表示了一个分号;在一个 PHP 代码段中的最后一行可以不用分号结束。如果后面还有新行,则代码段的结束标记包含了行结束。
<?php
echo "This is a test";
?>
<?php echo "This is a test" ?>
<?php echo 'We omitted the last closing tag';
Note:
文件末尾的 PHP 代码段结束标记可以不要,有些情况下当使用 include 或者 require 时省略掉会更好些,这样不期望的空白符就不会出现在文件末尾,之后仍然可以输出响应标头。在使用输出缓冲时也很便利,就不会看到由包含文件生成的不期望的空白符。
pbarney (2011-11-17 16:13:52)
If you want to keep the newline after a closing tag in the output, just add a space after the closing tag, and the newline will not be ignored.
Darabos, Edvrd Konrd (2008-08-19 03:58:38)
One newline character (or sequence) is dropped out by the parser after "?>", so you can add the beloved "final newline" to your file after "?>"
Example for plain text outputs:
<? foreach($array as $elem){ ?>
Value: <?=$elem?>
<? } ?>
(You have to add an extra enter after <?=$elem?> if you want to see a newline in the output.
james dot d dot noyes at lmco dot com (2008-05-05 11:42:50)
If you are embedding this in XML, you had better place the ending '?>' there or the XML parser will puke on you. XML parsers do not like processing instructions without end tags, regardless of what PHP does.
If you're doing HTML like 90% of the world, or if you are going to process/interpret the PHP before the XML parser ever sees it, then you can likely get away with it, but it's still not best practice for XML.
Krishna Srikanth (2006-08-17 04:44:41)
Do not mis interpret
<?php echo 'Ending tag excluded';
with
<?php echo 'Ending tag excluded';
<p>But html is still visible</p>
The second one would give error. Exclude ?> if you no more html to write after the code.