1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-24 07:02:06 +01:00
Files
archived-doc-fr/language/basic-syntax.xml
2026-03-02 14:11:07 +01:00

297 lines
9.6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 0e618211e53c66f33762be225a4d57c08ef4b2f7 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<!-- CREDITS: DavidA -->
<chapter xml:id="language.basic-syntax" xmlns="http://docbook.org/ns/docbook" annotations="interactive">
<title>La syntaxe de base</title>
<sect1 xml:id="language.basic-syntax.phptags">
<title>Balises PHP</title>
<para>
Lorsque PHP traite un fichier, il reconnaît les balises d'ouverture et
de fermeture, <literal>&lt;?php</literal> et <literal>?&gt;</literal>, pour
définir les limites de l'exécution du code PHP. Le contenu en dehors des
balises est ignoré par l'analyseur PHP, permettant à PHP de s'intégrer
de manière transparente dans divers types de documents.
</para>
<para>
Un caractère d'espace (espace, tabulation, ou nouvelle ligne) doit suivre
<literal>&lt;?php</literal> pour assurer une séparation correcte des jetons.
Omettre cet espace blanc entraînera une erreur de syntaxe.
</para>
<para>
PHP inclut également la balise courte echo <literal>&lt;?=</literal>,
qui est un raccourci pour <code>&lt;?php echo</code>.
</para>
<para>
<example>
<title>Balises d'ouverture et de fermeture PHP</title>
<programlisting role="php">
<![CDATA[
1. <?php echo 'Si vous voulez intégrer du code PHP dans des documents XHTML ou XML, utilisez ces balises'; ?>
2. Vous pouvez utiliser la balise courte pour <?= 'écrire ce texte' ?>.
Est équivalent à <?php echo 'écrire ce texte' ?>.
3. <? echo 'ce code est entre des balises courtes, mais ne fonctionnera '.
'que si short_open_tag est activé'; ?>
]]>
</programlisting>
</example>
</para>
<para>
Les balises courtes (troisième exemple) sont disponibles par défaut,
mais peuvent être désactivées soit via l'option
<link linkend="ini.short-open-tag">short_open_tag</link>
du fichier de configuration &php.ini;, ou sont désactivées par défaut si PHP
est compilé avec l'option <option>--disable-short-tags</option>.
</para>
<para>
<note>
<para>
Comme les balises courtes peuvent être désactivées il est recommandé de
seulement utiliser les balises normales (<code>&lt;?php ?&gt;</code> et
<code>&lt;?= ?&gt;</code>) pour maximiser la compatibilité.
</para>
</note>
</para>
<para>
Si un fichier se termine avec 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 le cas désiré.
</para>
<para>
<example>
<title>Fichier contenant uniquement du code PHP</title>
<programlisting role="php">
<![CDATA[
<?php
echo "Bonjour le monde\n";
// ... encore du code
echo "Dernière instruction\n";
// le script se termine ici, sans la balise de fermeture PHP
]]>
</programlisting>
</example>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.phpmode">
<title>Échappement depuis du HTML</title>
<para>
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.
</para>
<para>
<example>
<title>Intégrer du PHP dans du HTML</title>
<programlisting role="php">
<![CDATA[
<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>
]]>
</programlisting>
</example>
</para>
<para>
Ceci fonctionne comme prévu parce que lorsque l'interpréteur PHP rencontre
la balise fermante ?&gt;, il commence simplement à afficher ce qu'il
rencontre (mis à part la nouvelle ligne qui est immédiatement suivie : voir
l'<link linkend="language.basic-syntax.instruction-separation">instruction
de séparation</link>) jusqu'à ce qu'il rencontre une autre balise ouvrante
même si PHP se trouve au milieu d'une instruction conditionnelle, auquel cas,
l'interpréteur va déterminer la condition à prendre en compte avant de prendre
une décision sur ce qui doit être affiché.
Voir le prochain exemple.
</para>
<para>
Utilisation de structures avec des conditions
<example>
<title>Échappement avancé en utilisant des conditions</title>
<programlisting role="php">
<![CDATA[
<?php if ($expression == true): ?>
Ceci sera affiché si l'expression est vraie.
<?php else: ?>
Sinon, ceci sera affiché.
<?php endif; ?>
]]>
</programlisting>
</example>
Dans cet exemple, PHP va ignorer les blocs où la condition n'est pas remplie,
même s'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 rempli par la condition.
</para>
<para>
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
<function>echo</function> ou
<function>print</function>.
</para>
<para>
<note>
<para>
Si PHP est intégré dans un document XML ou XHTML, la balise PHP
standard <code>&lt;?php ?&gt;</code> doit être utilisée pour rester
conforme aux standards.
</para>
</note>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.instruction-separation">
<title>Séparation des instructions</title>
<para>
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 ;
il n'est donc pas nécessaire d'utiliser un point-virgule
pour terminer la dernière ligne d'un bloc PHP. La balise fermante du bloc
englobera la ligne suivante, si elle existe.
</para>
<para>
<example>
<title>Exemple montrant que la balise fermante englobe la nouvelle ligne qui suit</title>
<programlisting role="php">
<![CDATA[
<?php echo "Some text"; ?>
No newline
<?= "But newline now" ?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Some textNo newline
But newline now
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Exemples d'entrée et de sortie du parseur PHP</title>
<programlisting role="php">
<![CDATA[
<?php
echo "Ceci est un test\n";
?>
<?php echo "Ceci est un test\n" ?>
<?php echo "La dernière balise fermante a été omise\n";
]]>
</programlisting>
</example>
</para>
<para>
<note>
<para>
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
<function>include</function> ou
de la fonction <function>require</function>,
car les espaces non désirés n'apparaîtront pas à la fin des fichiers, et ainsi,
il sera toujours possible d'ajouter des en-têtes à la réponse plus tard. C'est utile
également lors de l'utilisation de l'affichage du buffer pour éviter de
voir des espaces blancs ajoutés à la fin des parties générées par les fichiers
inclus.
</para>
</note>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.comments">
<title>Commentaires</title>
<para>
PHP supporte les commentaires de type C, C++ et Shell Unix (aussi
appelé style Perl). Par exemple :
</para>
<para>
<example>
<title>Commentaires</title>
<programlisting role="php">
<![CDATA[
<?php
echo "Ceci est un test\n"; // Ceci est un commentaire sur une seule ligne, style c++
/* Ceci est un commentaire sur
plusieurs lignes */
echo "Ceci est un autre test\n";
echo "Et un test final\n"; # Ceci est un commentaire style shell sur une seule ligne
?>
]]>
</programlisting>
</example>
</para>
<simpara>
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 <literal>// ... ?&gt;</literal>
ou après <literal># ... ?&gt;</literal> SERA affiché :
?&gt; terminera le mode PHP et retournera en mode HTML, et
<literal>//</literal> ou <literal>#</literal> n'influencera pas cela.
</simpara>
<para>
<example>
<title>Les commentaires vont jusqu'à la fin de la ligne</title>
<programlisting role="php">
<![CDATA[
<h1>Ceci est un exemple <?php # echo 'simple';?></h1>
<p>La ligne ci-dessus affichera 'Ceci est un exemple'.</p>
]]>
</programlisting>
</example>
</para>
<simpara>
Les commentaires style 'C' commentent jusqu'à ce que le premier <literal>*/</literal>
soit rencontré. Il faut faire attention aux commentaires style 'C'
nichés dans de gros blocs lors de la mise en commentaire.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
/*
echo 'Ceci est un test'; /* Ce commentaire posera un problème */
*/
?>
]]>
</programlisting>
</informalexample>
</para>
</sect1>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->