mirror of
https://github.com/php/doc-ru.git
synced 2026-03-24 07:42:22 +01:00
123 lines
4.8 KiB
XML
123 lines
4.8 KiB
XML
<?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>?></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
|
||
-->
|