Vous êtes ici :
Accueil Cours Programmations La base du langage PHP La syntaxe de base

La base du langage PHP : La syntaxe de base

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 des balises

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 suivant 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 

 

Échappement depuis du HTML

Tout ce qui se trouve en dehors d'une paire de balises ouvrantes/fermantes est ignoré par l'analyseur PHP, ce qui permet d'avoir des fichiers PHP mixant les contenus. Ceci permet à PHP d'être contenu dans des documents HTML, pour créer par exemple des templates.

<p>Ceci sera ignoré par PHP et affiché au navigateur.</p>
<?php echo 'Alors que ceci sera analysé par PHP.'; ?>
<p>Ceci sera aussi ignoré par PHP et affiché au navigateur.</p>

Ceci fonctionne comme prévu parce que lorsque l'interpréteur PHP rencontre la balise fermante ?>, il commence simplement à afficher ce qu'il rencontre (mise à part s'il est immédiatement suivi d'une nouvelle ligne : voir l'instruction de séparation) jusqu'à ce qu'il rencontre une autre balise ouvrante même si PHP se trouve au milieu d'une instruction conditionnelle, au quel cas, l'interpréteur va déterminer la condition à prendre en compte avant de prendre une décision sur ce qui doit être afficher. Voir le prochain exemple.

 

Utilisation de structures avec des conditions

Exemple #1 Echappement avancé en utilisant des conditions

<?php if ($expression == true): ?>
  Ceci sera affiché si l expression est vrai.
<?php else: ?>
  Sinon, ceci sera affiché.
<?php endif; ?> 

Dans cet exemple, PHP va ignorer les blocs où la condition n'est pas remplie, même si ils sont en dehors des balises ouvrantes/fermantes de PHP. PHP va les ignorer suivant la condition vu que l'interpréteur PHP va passer les blocs contenant ce qui n'est pas remplie par la condition.

 

Pour afficher de gros blocs de texte, il est plus efficace de sortir du mode d'analyse de PHP plutôt que d'envoyer le texte via la fonction echo ou print.

Il y a quatre paires différentes de balises ouvrantes / fermantes qui peuvent être utilisées dans PHP. Deux de ces balises, <?php ?> et <script language="php"> </script>, sont toujours disponibles. Les deux autres sont les balises courtes et les balises du style ASP, et peuvent être activées ou désactivées depuis le fichier de configuration php.ini. Cependant, malgré le fait que des personnes trouvent les balises courtes et les balises du style ASP pratiques, elles sont moins portables et donc, généralement, non recommandées.

Note:

Notez également que si vous intégrez PHP dans des documents XML ou XHTML, vous devez utiliser les balises <?php ?> pour rester conforme aux standards.

Exemple #2 Balises d'ouvertures et de fermetures PHP

 <?php echo 'Si vous voulez intégrez du code PHP dans des documents XHTML ou XML, utilisez ces balises'; ?>

2.  <script language="php">
        echo 'quelques éditeurs (comme FrontPage)
                 n'aiment pas traiter des  d'instructions à l'intérieur de ces balises';
    </script>

3.  <? echo 'ce code est entre des balises courtes'; ?>
    Le code suivant <?= 'du texte' ?> est un raccourci pour <? echo 'du texte' ?> 

4.  <% echo 'Vous pouvez optionnellement utiliser les balises ASP-style'; %>
    Le code suivant <%= $variable; %> est un raccourci pour <% echo $variable; %>

Bien que les balises vues dans les exemples un et deux sont toutes les deux disponibles, l'exemple un est le plus communément utilisé et le plus recommandé des deux.

Les balises courtes (troisième exemple) ne sont disponibles que si elles ont été activées via la directive short_open_tag du fichier de configuration php.ini, ou si PHP a été configuré avec l'option --enable-short-tags .

Les balises du style ASP (quatrième exemple) sont uniquement disponibles lorsqu'elles sont activées via la directive asp_tags du fichier de configuration php.ini.

 

Note:

L'utilisation des balises courtes doit être bannie lors de développements d'applications ou de bibliothèques qui sont destinées à être redistribuées, ou déployées sur des serveurs qui ne sont pas sous votre contrôle, car les balises courtes peuvent ne pas être supportées sur le serveur cible. Pour réaliser du code portable, qui peut être redistribué, n'utilisez jamais les balises courtes.

 

Note:

En PHP 5.2 et antérieures, l'analyseur n'autorisait pas un tag ouvrant <?php comme seul élément d'une page. Ceci est permis à compter de la version 5.3 de PHP lorsqu'il y a un ou plusieurs espaces après la balise ouvrante.

 

Note:

Depuis PHP 5.4, le tag echo court <?= est toujours reconnu et valide, suivant la configuration de l'option short_open_tag.

Séparation des instructions

Comme en C ou en Perl, PHP requiert que les instructions soient terminées par un point-virgule à la fin de chaque instruction. La balise fermante d'un bloc de code PHP implique automatiquement un point-virgule ; vous n'avez donc pas besoin d'utiliser un point-virgule pour terminer la dernière ligne d'un bloc PHP. La balise fermante d'un bloc inclura immédiatement un caractère de nouvelle ligne si un est présent.

Exemple #1 Séparation des instructions

<?php
    echo 'Ceci est un test';
?>

<?php echo 'Ceci est un test' ?>

<?php echo 'Oubli de la balise fermante'; 

 

Note:

La balise fermante d'un bloc PHP à la fin d'un fichier est optionnelle, et parfois, il est utile de l'omettre lors de l'utilisation de la fonction include ou de la fonction require, car les espaces non désirés n'apparaîtront pas à la fin des fichiers, et ainsi, vous pourrez toujours ajouter des en-têtes à la réponse plus tard. C'est utile également si vous voulez utiliser l'affichage du buffer et que vous ne voulez pas voir d'espaces blancs ajoutés à la fin des parties générées par les fichiers inclus.

Les commentaires

PHP supporte les commentaires de type C, C++ et Shell Unix (aussi appelé style Perl). Par exemple :

Exemple #1 Exemple de commentaire

<?php
    echo 'Ceci est un test'; // Ceci est un commentaire sur une seule ligne, style c++
    /* Ceci est un commentaire sur
       plusieurs lignes */
    echo 'Ceci est un autre test';
    echo 'Et un test final'; # Ceci est un commentaire style shell sur une seule ligne
?> 

Les commentaires sur une seule ligne ne commentent que jusqu'à la fin de la ligne du bloc PHP courant. Ceci signifie que le code HTML après // ... ?> ou après # ... ?> SERA affiché : ?> terminera le mode PHP et retournera en mode HTML, et // ou # n'influencera pas cela. Si la directive de configuration asp_tags est activée, ce comportement sera identique avec // %> et # %>. Cependant, la balise </script> ne terminera pas le mode PHP dans un commentaire d'une seule ligne.

 

Exemple #2 Les commentaires vont jusqu'à la fin de la ligne

<h1>Ceci est un exemple <?php # echo 'simple';?></h1>
<p>La ligne ci-dessus affichera 'Ceci est un exemple'.</p>

Les commentaires style 'C' commentent jusqu'à ce que le premier */ soit rencontré. Vous devriez faire attention aux commentaires style 'C' nichés dans de gros blocs lorsque vous les commentez.

 

Exemple #3 Les commentaires de type C

<?php
 /*
    echo 'Ceci est un test'; /* Ce commentaire posera un problème */
 */
?> 

 




Vous êtes ici :
Accueil Cours Programmations La base du langage PHP La syntaxe de base