Files
doc-fr/language/basic-syntax.xml
Damien Seguy e007d72b63 minor spelling mistakes
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@261323 c90b9560-bf6c-de11-be94-00142212c4b1
2008-06-18 16:17:00 +00:00

249 lines
8.9 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.49 $ -->
<!-- EN-Revision: 1.52 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="language.basic-syntax" xmlns="http://docbook.org/ns/docbook">
<title>La syntaxe de base</title>
<sect1 xml:id="language.basic-syntax.phpmode">
<title>Passer du HTML au PHP</title>
<para>
Lorsque PHP traite un fichier, il cherche les balises d'ouvertures et
de fermetures, qui délimitent le code qu'il doit interpréter. De cette
manière, cela permet à PHP d'être présent dans toutes sortes de documents,
car tout ce qui se trouve en dehors des balises ouvrantes / fermantes de
PHP est ignoré. La plupart du temps, vous verrez du code PHP dans des
documents HTML, comme dans l'exemple ci-dessous.
<example>
<title>Code PHP dans un document HTML</title>
<programlisting role="php">
<![CDATA[
<p>Ceci sera ignoré.</p>
<?php echo 'Alors que ceci sera analysé par PHP.'; ?>
<p>Ceci sera également ignoré.</p>
]]>
</programlisting>
</example>
</para>
<para>
Vous pouvez également utiliser des structures plus avancées :
<example>
<title>Protections avancés</title>
<programlisting role="php">
<![CDATA[
<?php
if ($expression) {
?>
<strong>Ceci est vrai.</strong>
<?php
} else {
?>
<strong>Ceci est faux.</strong>
<?php
}
?>
]]>
</programlisting>
</example>
Ceci fonctionne comme prévu parce que lorsque PHP rencontre
la balise fermante ?&gt;, il commence simplement à afficher ce qu'il
rencontre (mise à part s'il est immédiatement suivi d'une nouvelle ligne
- voir l'<link linkend="language.basic-syntax.instruction-separation">instruction
de séparation</link>) jusqu'à ce qu'il rencontre une autre balise ouvrante.
L'exemple ci-dessus est simple, bien sûr, mais pour afficher de gros bloc
de textes, la mise à l'écart de ce type de bloc de l'analyseur de PHP est
plus efficace que d'envoyer la totalité du texte en utilisant les fonctions
<function>echo</function> ou <function>print</function>.
</para>
<para>
Il y a quatre paires différentes de balises ouvrantes / fermantes qui
peuvent être utilisées dans PHP. Deux de ces balises, &lt;?php ?&gt; et
&lt;script language="php"&gt; &lt;/script&gt;, sont toujours disponibles.
Les deux autres sont les balises courtes et les balises du style
<productname>ASP</productname>, 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
<productname>ASP</productname> pratiques, elles sont moins portables
et donc, généralement, non recommandées.
<note>
<para>
Notez également que si vous intégrez PHP dans des documents XML
ou XHTML, vous devez utiliser les balises &lt;?php ?&gt; pour rester
conforme aux standards.
</para>
</note>
</para>
<para>
<example>
<title>Balises d'ouvertures et de fermetures PHP</title>
<programlisting role="php">
<![CDATA[
1. <?php echo 'Si vous voulez réaliser des documents XHTML ou XML, faites comme ceci'; ?>
2. <script language="php">
echo 'quelques éditeurs (comme FrontPage)
n\'aiment pas ce genre d\'instructions';
</script>
3. <? echo 'ceci est le plus simple, une instruction SGML'; ?>
<?= expression ?> Ceci est la version courte pour "<? echo expression ?>"
4. <% echo 'Vous pouvez optionnellement utiliser les balises ASP-style'; %>
<%= $variable; # Ceci est la version courte pour "<% echo . . ." %>
]]>
</programlisting>
</example>
</para>
<para>
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.
</para>
<para>
Les balises courtes (troisième exemple) ne sont disponibles que s'ils ont
été activées via la directive
<link linkend="ini.short-open-tag">short_open_tag</link>
du fichier de configuration &php.ini;, ou si PHP a été configuré
avec l'option <option>--enable-short-tags</option>.
</para>
<para>
Les balises du style <productname>ASP</productname> (quatrième exemple)
sont uniquement disponibles lorsqu'elles sont activées via la directive
<link linkend="ini.asp-tags">asp_tags</link> du fichier de configuration
&php.ini;.
</para>
<para>
<note>
<para>
L'utilisation des balises courtes doit être banni 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.
</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 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.
<example>
<title>Séparation des instructions</title>
<programlisting role="php">
<![CDATA[
<?php
echo 'Ceci est un test';
?>
<?php echo 'Ceci est un test' ?>
<?php echo 'Oubli de la balise fermante';
]]>
</programlisting>
</example>
<note>
<para>
La balise fermante d'un bloc PHP à la fin d'un fichier est optionnel,
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 comment jusqu'à la fin
de la ligne ou le bloc courant de code PHP, le premier des deux.
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.
Si la directive de configuration <link linkend="ini.asp-tags">asp_tags</link>
est activée, ce comportement sera identique avec <literal>// %&gt;</literal> et
<literal># %&gt;</literal>.
Cependant, la balise <literal>&lt;/script&gt;</literal> ne terminera pas le mode PHP dans
un commentaire d'une seule ligne.
</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:"../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->