1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
Mikhail Alferov 8c46ea5b80 Update 2258375 to En (#1053)
* Update new-features.xml to En

* Update variables.xml to en

* Update elseif.xml to en

* Update match.xml to en

* Update array.xml to en
2025-02-27 08:42:27 +03:00

123 lines
4.8 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: 22583751fbfdaa3eaa41aeb6470d1343f5cb2c78 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="control-structures.elseif" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>elseif/else if</title>
<?phpdoc print-version-for="elseif"?>
<para>
Конструкция <literal>elseif</literal>, как ясно из названия, объединяет
конструкции <literal>if</literal> и <literal>else</literal>.
Как и конструкция <literal>else</literal>, она расширяет инструкцию <literal>if</literal>,
чтобы выполнять другую инструкцию тогда, когда PHP вычисляет выражение начальной конструкции
<literal>if</literal> как &false;. Отличие от конструкции <literal>else</literal> состоит в том,
что конструкция <literal>elseif</literal> выполнит альтернативное
выражение только тогда, когда PHP вычислит условное выражение <literal>elseif</literal>
как &true;. Следующий код, в зависимости от значений переменных,
будет выводить
«<computeroutput>a больше b</computeroutput>»,
«<computeroutput>a равно b</computeroutput>»
или «<computeroutput>a меньше b</computeroutput>»:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
if ($a > $b) {
echo "a больше b";
} elseif ($a == $b) {
echo "a равно b";
} else {
echo "a меньше b";
}
?>
]]>
</programlisting>
</informalexample>
</para>
<simpara>
Допустимо указывать больше одной конструкции <literal>elseif</literal> в одной
инструкции <literal>if</literal>. PHP выполняет первое выражение
<literal>elseif</literal>, которое вычисляет как &true;. В PHP допустимо
писать <literal>else if</literal> в два слова, тогда поведение будет идентичным
конструкции <literal>elseif</literal> в одно слово. Синтаксическое отличие есть
(в языке C пишут в два слова), но в итоге оба выражения дадут один
и тот же результат.
</simpara>
<simpara>
PHP выполнит инструкцию <literal>elseif</literal> только тогда,
когда вычислит предшествующее выражение <literal>if</literal> и предшествующие
выражения <literal>elseif</literal> как &false;, а текущее выражение
<literal>elseif</literal> — как &true;.
</simpara>
<note>
<simpara>
Заметьте, что записи <literal>elseif</literal> и <literal>else if</literal>
будут равнозначны только в синтаксисе с фигурными скобками,
как в приведённом примере. В синтаксисе с двоеточием для определения условий
<literal>if</literal> и <literal>elseif</literal>,
конструкция <literal>elseif</literal> пишется в одно слово.
PHP выдаст ошибку синтаксического анализа и завершит работу, если запись
конструкции <literal>else if</literal> разделена на два слова.
</simpara>
</note>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
/* Некорректный способ: */
if ($a > $b):
echo $a . " больше " . $b;
else if ($a == $b): // Не скомпилируется
echo "Строка выше вызывает фатальную ошибку.";
endif;
?>
]]>
</programlisting>
</informalexample>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
/* Корректный способ: */
if ($a > $b):
echo $a . " больше " . $b;
elseif ($a == $b): // Заметьте, тут одно слово
echo $a . " равно " . $b;
else:
echo $a . " не больше и не равно " . $b;
endif;
?>
]]>
</programlisting>
</informalexample>
</para>
</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
-->