1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
2024-03-06 16:05:02 +03:00

93 lines
3.4 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 3725fe1c95b201563518c30e1988b2f32ee099aa Maintainer: mch 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>
Часто необходимо выполнить одну инструкцию, если конкретное условие
верно, и другую — если неверно. Вот для чего
нужна конструкция <literal>else</literal>. Конструкция <literal>else</literal>
расширяет инструкцию <literal>if</literal>, чтобы выполнять другую инструкцию
тогда, когда выражение внутри инструкции <literal>if</literal>
PHP оценивает как &false;. Например, следующий код выведет
«<computeroutput>a больше b</computeroutput>»,
если значение переменной <varname>$a</varname> больше, чем
значение переменной <varname>$b</varname>,
иначе — «<computeroutput>a НЕ больше b</computeroutput>»:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
if ($a > $b) {
echo "a больше b";
} else {
echo "a НЕ больше b";
}
?>
]]>
</programlisting>
</informalexample>
PHP выполнит инструкцию <literal>else</literal>, только если
вычислит выражение <literal>if</literal> как &false;,
а если были выражения <literal>elseif</literal>
— то только если тоже вычислит их как &false;. <link
linkend="control-structures.elseif">О конструкции elseif</link>.
</para>
<note>
<title>Болтающийся else</title>
<para>
В случае вложенных инструкций <literal>if</literal>-<literal>else</literal>,
конструкция <literal>else</literal> связывается с близлежащей конструкцией <literal>if</literal>.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$a = false;
$b = true;
if ($a)
if ($b)
echo "b";
else
echo "c";
?>
]]>
</programlisting>
</informalexample>
Независимо от расстановки отступов, которые не влияют на PHP-код,
конструкция <literal>else</literal> связана с конструкцией <literal>if ($b)</literal>,
поэтому пример ничего не выведет.
Код с такой расстановкой отступов будет работать,
но лучше избегать такого кода и использовать фигурные скобки,
чтобы устранить неоднозначности.
</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
-->