mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-15 16:38:54 +00:00

Fixes doc bug #67504 (Alternative switch syntax - error when case not in same block with switch). git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@333913 c90b9560-bf6c-de11-be94-00142212c4b1
119 lines
3.4 KiB
XML
119 lines
3.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
|
|
<sect1 xml:id="control-structures.alternative-syntax" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<title>Alternative syntax for control structures</title>
|
|
<?phpdoc print-version-for="control-structures.alternative-syntax"?>
|
|
<para>
|
|
PHP offers an alternative syntax for some of its control
|
|
structures; namely, <literal>if</literal>,
|
|
<literal>while</literal>, <literal>for</literal>,
|
|
<literal>foreach</literal>, and <literal>switch</literal>.
|
|
In each case, the basic form of the alternate syntax is to change
|
|
the opening brace to a colon (:) and the closing brace to
|
|
<literal>endif;</literal>, <literal>endwhile;</literal>,
|
|
<literal>endfor;</literal>, <literal>endforeach;</literal>, or
|
|
<literal>endswitch;</literal>, respectively.
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php if ($a == 5): ?>
|
|
A is equal to 5
|
|
<?php endif; ?>
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</para>
|
|
<simpara>
|
|
In the above example, the HTML block "A is equal to 5" is nested within an
|
|
<literal>if</literal> statement written in the alternative syntax. The
|
|
HTML block would be displayed only if <varname>$a</varname> is equal to 5.
|
|
</simpara>
|
|
<para>
|
|
The alternative syntax applies to <literal>else</literal> and
|
|
<literal>elseif</literal> as well. The following is an
|
|
<literal>if</literal> structure with <literal>elseif</literal> and
|
|
<literal>else</literal> in the alternative format:
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
if ($a == 5):
|
|
echo "a equals 5";
|
|
echo "...";
|
|
elseif ($a == 6):
|
|
echo "a equals 6";
|
|
echo "!!!";
|
|
else:
|
|
echo "a is neither 5 nor 6";
|
|
endif;
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</para>
|
|
<note>
|
|
<para>
|
|
Mixing syntaxes in the same control block is not supported.
|
|
</para>
|
|
</note>
|
|
<warning>
|
|
<para>
|
|
Any output (including whitespace) between a <literal>switch</literal>
|
|
statement and the first <literal>case</literal> will result in a syntax
|
|
error. For example, this is invalid:
|
|
</para>
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php switch ($foo): ?>
|
|
<?php case 1: ?>
|
|
...
|
|
<?php endswitch ?>
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
<para>
|
|
Whereas this is valid, as the trailing newline after the
|
|
<literal>switch</literal> statement is considered part of the closing
|
|
<literal>?></literal> and hence nothing is output between the
|
|
<literal>switch</literal> and <literal>case</literal>:
|
|
</para>
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php switch ($foo): ?>
|
|
<?php case 1: ?>
|
|
...
|
|
<?php endswitch ?>
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</warning>
|
|
<para>
|
|
See also <link linkend="control-structures.while">while</link>,
|
|
<link linkend="control-structures.for">for</link>, and <link
|
|
linkend="control-structures.if">if</link> for further examples.
|
|
</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
|
|
-->
|