PHP 5.6.29 Released

Balises PHP

Lorsque PHP traite un fichier, il cherche les balises d'ouverture et de fermeture (<?php et ?>) qui délimitent le code qu'il doit interpréter. De cette manière, cela permet à PHP d'être intégré dans toutes sortes de documents, car tout ce qui se trouve en dehors des balises ouvrantes / fermantes de PHP est ignoré.

PHP autorise aussi la balise ouvrante dite "courte" <? (que nous vous conseillons vivement de ne pas utiliser car elle n'est disponible que lors de l'activation de la directive de configuration short_open_tag du php.ini, ou si PHP a été configuré avec l'option --enable-short-tags ).

Historiques
Version Description
7.0.0 Les balises ASP <% , %> , <%= , et les balises script <script language=php> ont été supprimées de PHP.
5.4.0 La balise <?= est toujours disponible indépendamment de la configuration de l'option INI short_open_tag.

Si un fichier est purement du code PHP, il est préférable de ne pas placer la balise de fermeture à la fin du fichier. Ceci permet d'éviter d'oublier un espace ou une nouvelle ligne après la balise de fermeture de PHP, ce qui causerait des effets non voulus car PHP commencera à afficher la sortie, ce qui n'est souvent pas ce qui est désiré.

<?php
echo "Bonjour le monde !";

// ... encore du code

echo "Dernière instruction";

// le script se termine ici, sans la balise de fermeture PHP

add a note add a note

User Contributed Notes 4 notes

up
7
crazytonyi at gmail dot com
9 months ago
Regarding earlier note by @purkrt :

> I would like to stress out that the opening tag is "<?php[whitespace]", not just "<?php"

This is absolutely correct, but the wording may confuse some developers less familiar with the extent of the term "
[whitespace]".

Whitespace, in this context, would be any character that generated vertical or horizontal space, including tabs ( \t ), newlines ( \n ), and carriage returns ( \r ), as well as a space character ( \s ). So reusing purkrt's example:

<?php/*blah*/ echo "
a"?>

would not work, as mentioned, but :

<?php /*php followed by space*/ echo "
a"?>

will work, as well as :

<?php
/*php followed by end-of-line*/ echo "
a"?>

and :

<?php    /*php followed by tab*/ echo "
a"?>

I just wanted to clarify this to prevent anyone from misreading purkrt's note to mean that a the opening tag --even when being on its own line--required a space ( \s ) character. The following would work but is not at all necessary or how the earlier comment should be interpreted :

<?php
/*php followed by a space and end-of-line*/ echo "
a"?>

The end-of-line character is whitespace, so it is all that you would need.
up
3
purkrt at gmail dot com
1 year ago
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/*blah*/ 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.
up
-28
jcastromail at yahoo dot es
11 months ago
Its important:

this code (for web)
    <pre>
    I
    <? echo "am;" ?>
    Groot
    </pre>

Generates the next result:
    I
    amGroot
instead of
    I
    am
    Groot
The last tag "?>" deletes the end of the line.

However, if we changed the line
    <? echo "am"; ?>
by
    <? echo "am"; ?>.  (or  a space)
then the result is :
    I
    am.
    Groot
up
-147
alexander dot podgorny at somewhere dot com
2 years ago
One reason to use long tags over short is to avoid confusion with <?xml ?> notation.
To Top