PHP 5.4.31 Released


C や Perl と同様に、PHP でもステートメントを区切りにはセミコロンが必要と なります。PHP コードブロックの終了タグには自動的にセミコロンが含まれていると 認識されます。 従って PHP コードの最終行にはセミコロンを記述する必要はありません。 ブロックの終了タグは、直後に改行がある場合、それを含んだものになります。

echo 'テストです';

<?php echo 'テストです' ?>

<?php echo '終了タグを省略しました';


ファイル終端における PHP ブロックの終了タグはオプション(任意)です。 includerequire を利用する際には、 終了タグを省略する方が無難です。というのは、そうすることでファイルの最後に 予期せぬ空白文字があらわれてしまうことを防げますし、後でレスポンスに ヘッダを付加することも可能となるからです。また、出力バッファリングを 使用しており、include したファイルの生成する部分の最後に余計な空白を つけたくない場合などにも便利です。

add a note add a note

User Contributed Notes 7 notes

Krishna Srikanth
7 years ago
Do not mis interpret

<?php echo 'Ending tag excluded';


<?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.
2 years ago
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.
shojibur at gmail dot com
3 months ago
You have been missed semicolon.

Keep in mind if you did not put closing tag, must put semicolon at the end ,

<?php echo '<p>But html is still visible</p>';
5 months ago
@ oliwer dot urfriend at gmail dot com
It will give error as you you did not add a clsoing tag nor semi <?php echo '<p>But html is still visible</p>'
james dot d dot noyes at lmco dot com
6 years ago
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.
oliwer dot urfriend at gmail dot com
6 months ago
<?php echo 'Ending tag excluded'; ?>
<?php echo 'Ending tag excluded';?>
<?php echo '<p>But html is still visible</p>'

if in this example i omitted the last closing tag then code gives error :(
sriharsha dot suripeddi1250 at gmail dot com
3 months ago
Hi,  you missed the ";" in the <p> tag. please check that.
To Top