Files
Sergey Panteleev b9b87d60ec Sync DOM, Intl and other docs to English (#152)
Co-authored-by: George Peter Banyard <girgias@php.net>
2022-01-13 12:01:05 +00:00

89 lines
2.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 3725fe1c95b201563518c30e1988b2f32ee099aa Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="control-structures.else" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>else</title>
<?phpdoc print-version-for="else"?>
<para>
Souvent, vous voulez exécuter une instruction si une
condition est remplie et une autre instruction si cette condition
n'est pas remplie. C'est à cela que sert <literal>else</literal>.
<literal>else</literal> fonctionne après un
<literal>if</literal> et exécute les instructions
correspondantes au cas où l'expression du <literal>if</literal>
est &false;. Dans l'exemple suivant, ce bout de code
affiche <computeroutput>a est plus grand que b</computeroutput> si la
variable <varname>$a</varname> est plus grande que la variable
<varname>$b</varname>, et <computeroutput>a est plus petit que b</computeroutput>
sinon :
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
if ($a > $b) {
echo "a est plus grand que b";
} else {
echo "a est plus petit que b";
}
?>
]]>
</programlisting>
</informalexample>
Les instructions après le <literal>else</literal> ne sont
exécutées que si l'expression du <literal>if</literal>
est &false;, et s'il existe des expressions <literal>elseif</literal>
- uniquement si elles sont également évaluées à &false; (voir <link
linkend="control-structures.elseif">elseif</link>).
</para>
<note>
<title>Dangling else</title>
<para>
Dans le cas d'instructions <literal>if</literal>-<literal>else</literal>
imbriquées, un <literal>else</literal> est toujours associé avec le
<literal>if</literal> le plus proche.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$a = false;
$b = true;
if ($a)
if ($b)
echo "b";
else
echo "c";
?>
]]>
</programlisting>
</informalexample>
Malgré l'indentation (qui n'a pas d'importance en PHP), le
<literal>else</literal> est associé avec le <literal>if ($b)</literal>,
ainsi cet exemple ne produit pas de sortie.
Tant bien que s'appuyer sur ce comportement est valide, il est recommandé de
l'éviter en utilisant des accolades pour résoudre toute ambiguïté possible.
</para>
</note>
</sect1>
<!-- 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:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->