2008-12-27 01:35:49 +00:00
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
2009-07-11 06:17:58 +00:00
|
|
|
<!-- $Revision$ -->
|
2008-12-27 01:35:49 +00:00
|
|
|
|
|
|
|
<sect1 xml:id="control-structures.while" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
2020-12-06 22:38:36 +00:00
|
|
|
<title>while</title>
|
2011-07-05 18:59:24 +00:00
|
|
|
<?phpdoc print-version-for="while"?>
|
2008-12-27 01:35:49 +00:00
|
|
|
<para>
|
|
|
|
<literal>while</literal> loops are the simplest type of loop in
|
|
|
|
PHP. They behave just like their C counterparts. The basic form
|
|
|
|
of a <literal>while</literal> statement is:
|
|
|
|
<informalexample>
|
|
|
|
<programlisting>
|
|
|
|
<![CDATA[
|
|
|
|
while (expr)
|
|
|
|
statement
|
|
|
|
]]>
|
|
|
|
</programlisting>
|
|
|
|
</informalexample>
|
|
|
|
</para>
|
|
|
|
<simpara>
|
|
|
|
The meaning of a <literal>while</literal> statement is simple. It
|
|
|
|
tells PHP to execute the nested statement(s) repeatedly, as long
|
|
|
|
as the <literal>while</literal> expression evaluates to
|
|
|
|
&true;. The value of the expression is checked
|
|
|
|
each time at the beginning of the loop, so even if this value
|
|
|
|
changes during the execution of the nested statement(s), execution
|
|
|
|
will not stop until the end of the iteration (each time PHP runs
|
2020-05-04 13:37:46 +00:00
|
|
|
the statements in the loop is one iteration). If the
|
2008-12-27 01:35:49 +00:00
|
|
|
<literal>while</literal> expression evaluates to
|
|
|
|
&false; from the very beginning, the nested
|
|
|
|
statement(s) won't even be run once.
|
|
|
|
</simpara>
|
|
|
|
<para>
|
|
|
|
Like with the <literal>if</literal> statement, you can group
|
|
|
|
multiple statements within the same <literal>while</literal> loop
|
|
|
|
by surrounding a group of statements with curly braces, or by
|
|
|
|
using the alternate syntax:
|
|
|
|
<informalexample>
|
|
|
|
<programlisting>
|
|
|
|
<![CDATA[
|
|
|
|
while (expr):
|
|
|
|
statement
|
|
|
|
...
|
|
|
|
endwhile;
|
|
|
|
]]>
|
|
|
|
</programlisting>
|
|
|
|
</informalexample>
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
The following examples are identical, and both print the numbers
|
|
|
|
1 through 10:
|
|
|
|
<informalexample>
|
|
|
|
<programlisting role="php">
|
|
|
|
<![CDATA[
|
|
|
|
<?php
|
|
|
|
/* example 1 */
|
|
|
|
|
|
|
|
$i = 1;
|
|
|
|
while ($i <= 10) {
|
|
|
|
echo $i++; /* the printed value would be
|
|
|
|
$i before the increment
|
|
|
|
(post-increment) */
|
|
|
|
}
|
|
|
|
|
|
|
|
/* example 2 */
|
|
|
|
|
|
|
|
$i = 1;
|
|
|
|
while ($i <= 10):
|
|
|
|
echo $i;
|
|
|
|
$i++;
|
|
|
|
endwhile;
|
|
|
|
?>
|
|
|
|
]]>
|
|
|
|
</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
|
2009-09-25 07:04:39 +00:00
|
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
2008-12-27 01:35:49 +00:00
|
|
|
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
|
|
|
|
-->
|