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
2021-04-15 22:36:21 +01:00

285 lines
9.2 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: c63057033539758cb2e6ed4786c4d59b9ed059a5 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<!-- CREDITS: DavidA -->
<chapter xml:id="language.basic-syntax" xmlns="http://docbook.org/ns/docbook">
<title>La syntaxe de base</title>
<sect1 xml:id="language.basic-syntax.phptags">
<title>Balises PHP</title>
<para>
Lorsque PHP traite un fichier, il cherche les balises d'ouverture et
de fermeture (<literal>&lt;?php</literal> et <literal>?&gt;</literal>)
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é.
</para>
<para>
PHP inclus une balise ouvrante echo courte <literal>&lt;?=</literal> qui
est un raccourci au code plus verbeux <code>&lt;?php echo</code>.
</para>
<para>
<example>
<title>Balises d'ouvertures et de fermetures PHP</title>
<programlisting role="php">
<![CDATA[
1. <?php echo 'Si vous voulez intégrez 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 'print this string' ?>.
3. <? echo 'ce code est entre des balises courtes'; ?>
Le code suivant <?= 'du texte' ?> est un raccourci pour <? echo 'du texte' ?>
]]>
</programlisting>
</example>
</para>
<para>
Les balises courtes (troisième exemple) sont disponibles par défaut,
mais peuvent être désactivé soit via l'option
<link linkend="ini.short-open-tag">short_open_tag</link>
du fichier de configuration &php.ini;, ou sont désactivé 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é 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 contient seulement 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é.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo "Bonjour le monde !";
// ... encore du code
echo "Dernière instruction";
// le script se termine ici, sans la balise de fermeture PHP
]]>
</programlisting>
</informalexample>
</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.
<informalexample>
<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>
</informalexample>
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, 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.
</para>
<para>
Utilisation de structures avec des conditions
<example>
<title>Echappement avancé en utilisant des conditions</title>
<programlisting role="php">
<![CDATA[
<?php if ($expression == true): ?>
Ceci sera affiché si l'expression est vrai.
<?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 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.
</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é 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 ;
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 inclue le caractère de nouvelle ligne suivi immédiatement si un
est présent.
</para>
<para>
<example>
<title>Exemple montrant que la balise fermente 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>
Exemples d'entrée et de sortie de l'analyseur PHP :
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo 'This is a test';
?>
<?php echo 'This is a test' ?>
<?php echo 'We omitted the last closing tag';
]]>
</programlisting>
</informalexample>
<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,
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.
</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 :
<example>
<title>Exemple de commentaire</title>
<programlisting role="php">
<![CDATA[
<?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
?>
]]>
</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é. Vous devriez faire attention aux commentaires style 'C'
nichés dans de gros blocs lorsque vous les commentez.
</simpara>
<para>
<example>
<title>Les commentaires de type C</title>
<programlisting role="php">
<![CDATA[
<?php
/*
echo 'Ceci est un test'; /* Ce commentaire posera un problème */
*/
?>
]]>
</programlisting>
</example>
</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:
-->