ConFoo: Call for paper is now Open

Separação de instruções

Como no C ou Perl, o PHP requer que as instruções sejam terminadas com um ponto-e-vírgula ao final de cada comando. A tag de fechamento de um bloco de código PHP automaticamente implica em um ponto-e-vírgula; você não precisa ter um ponto-e-vírgula terminando a última linha de um bloco PHP. A tag de fechamento irá incluir uma nova linha logo após, se estiver presente.

<?php
    
echo 'Isto é um teste';
?>

<?php echo 'Isto é um teste' ?>

<?php echo 'Nós omitimos a última tag de fechamento';

Nota:

A tag de fechamento de um bloco PHP ao final de um arquivo é opcional, e em alguns casos omiti-la é útil ao usar include ou require, assim espaço em branco indesejado não irá aparecer ao final dos arquivos, e você ainda será capaz de adicionar cabeçalhos a resposta após. Também é útil se você usar output buffering, e você não quer ter adicionado um espaço em branco ao final das partes geradas por arquivos incluídos.

add a note add a note

User Contributed Notes 9 notes

up
81
Krishna Srikanth
8 years ago
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.
up
2
pbarney
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.
up
0
Kalimuthu
10 days ago
One thing to remember is, if you decide to omit the closing PHP tag, then the last line of the file should be ended with semi colon. If you add the closing tag then last line doesn't need to end with semi colon.

<?php
echo "First line";
echo
"Last line"

The above code throws error as it neither has closing tag nor semicolon ending. So it should be replaced with either of the below two

<?php
echo "First line";
echo
"Last line";

or

<?
php
echo "First line";
echo
"Last line" ?>
up
0
shojibur at gmail dot com
4 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>';
up
-1
Karthik SWOT
20 days ago
The Second line
<?php echo 'This is a test' ?>
will be working properly without throw any errors.

You don't need to put ; at the end of statement if we using a single statement.

If we add more statement only it should be add like this,
<?php
echo 'This is a test'
echo 'This is second line'
?>

See, here also no need to put ; at the end of second line. Because there is no additional statements after.
up
-20
Jamal
6 months ago
@ oliwer dot urfriend at gmail dot com
It will give error as you you did not add a clsoing tag nor semi colon..here <?php echo '<p>But html is still visible</p>'
up
-33
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.
up
-19
sriharsha dot suripeddi1250 at gmail dot com
4 months ago
Hi,  you missed the ";" in the <p> tag. please check that.
up
-42
oliwer dot urfriend at gmail dot com
8 months ago
<?php echo 'Ending tag excluded'; ?>
with
<?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 :(
To Top