1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
archived-doc-ru/language/control-structures/alternative-syntax.xml
2025-02-12 15:34:12 +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: shein Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="control-structures.alternative-syntax" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Альтернативный синтаксис управляющих структур</title>
<?phpdoc print-version-for="control-structures.alternative-syntax"?>
<para>
PHP предлагает альтернативный синтаксис для отдельных
управляющих структур языка, а точнее: <literal>if</literal>,
<literal>while</literal>, <literal>for</literal>,
<literal>foreach</literal> и <literal>switch</literal>.
Для каждой управляющей структуры базовую форму альтернативного синтаксиса получают
путём изменения открывающей фигурной скобки на двоеточие :, а закрывающей —
на инструкцию, которая соответствует названию структуры: <literal>endif;</literal>,
<literal>endwhile;</literal>, <literal>endfor;</literal>, <literal>endforeach;</literal>
или <literal>endswitch;</literal>.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php if ($a == 5): ?>
A равно 5
<?php endif; ?>
]]>
</programlisting>
</informalexample>
</para>
<simpara>
В приведённом примере, HTML-блок "A равно 5" вложили
в конструкции <literal>if</literal>, которую записали альтернативным синтаксисом.
Блок HTML-разметки отобразится, только если переменная <varname>$a</varname> равна 5.
</simpara>
<para>
Альтернативный синтаксис также применяется к конструкциям <literal>else</literal>
и <literal>elseif</literal>. Следующий пример показывает структуру
конструкции <literal>if</literal> с конструкциями <literal>elseif</literal>
и <literal>else</literal> в альтернативном формате:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
if ($a == 5):
echo "Значение переменной $a равно 5";
echo "...";
elseif ($a == 6):
echo "Значение переменной $a равно 6";
echo "!!!";
else:
echo "Значение переменной $a не равно ни 5, ни 6";
endif;
?>
]]>
</programlisting>
</informalexample>
</para>
<note>
<para>
Смешивание синтаксиса в одном и том же блоке управления не поддерживается.
</para>
</note>
<warning>
<para>
Любой вывод, включая пробельные символы, между инструкцией <literal>switch</literal>
и первой инструкцией <literal>case</literal> вызовет синтаксическую ошибку.
Например, следующий синтаксис недопустим:
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php switch ($foo): ?>
<?php case 1: ?>
// ...
<?php endswitch; ?>
]]>
</programlisting>
</informalexample>
<para>
При этом следующий пример содержит допустимый код,
поскольку завершающий символ новой строки после инструкции
<literal>switch</literal> PHP рассматривает как часть закрывающего тега <literal>?&gt;</literal>
и поэтому между инструкциями <literal>switch</literal>
и <literal>case</literal> ничего не выводится:
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch; ?>
]]>
</programlisting>
</informalexample>
</warning>
<para>
Дополнительные примеры приводят страницы описания
циклов <link linkend="control-structures.while">while</link>
и <link linkend="control-structures.for">for</link>,
и конструкци <link linkend="control-structures.if">if</link>.
</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
-->