<HTML ><HEAD ><TITLE >while</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="PHP Manual" HREF="index.html"><LINK REL="UP" TITLE="Control Structures" HREF="control-structures.html"><LINK REL="PREVIOUS" TITLE="Alternative syntax for control structures" HREF="control-structures.alternative-syntax.html"><LINK REL="NEXT" TITLE="do..while" HREF="control-structures.do.while.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"></HEAD ><BODY CLASS="sect1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >PHP Manual</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="control-structures.alternative-syntax.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Chapter 12. Control Structures</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="control-structures.do.while.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="control-structures.while" ></A ><TT CLASS="literal" >while</TT ></H1 ><P > <TT CLASS="literal" >while</TT > loops are the simplest type of loop in PHP. They behave just like their C counterparts. The basic form of a <TT CLASS="literal" >while</TT > statement is: <DIV CLASS="informalexample" ><A NAME="AEN4878" ></A ><P ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="programlisting" >while (expr) statement</PRE ></TD ></TR ></TABLE ><P ></P ></DIV > </P ><P > The meaning of a <TT CLASS="literal" >while</TT > statement is simple. It tells PHP to execute the nested statement(s) repeatedly, as long as the <TT CLASS="literal" >while</TT > expression evaluates to <TT CLASS="constant" ><B >TRUE</B ></TT >. 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 the statements in the loop is one iteration). Sometimes, if the <TT CLASS="literal" >while</TT > expression evaluates to <TT CLASS="constant" ><B >FALSE</B ></TT > from the very beginning, the nested statement(s) won't even be run once. </P ><P > Like with the <TT CLASS="literal" >if</TT > statement, you can group multiple statements within the same <TT CLASS="literal" >while</TT > loop by surrounding a group of statements with curly braces, or by using the alternate syntax: <DIV CLASS="informalexample" ><A NAME="AEN4889" ></A ><P ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="programlisting" >while (expr): statement ... endwhile;</PRE ></TD ></TR ></TABLE ><P ></P ></DIV > </P ><P > The following examples are identical, and both print numbers from 1 to 10: <DIV CLASS="informalexample" ><A NAME="AEN4892" ></A ><P ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="php" >/* example 1 */ $i = 1; while ($i <= 10) { print $i++; /* the printed value would be $i before the increment (post-increment) */ } /* example 2 */ $i = 1; while ($i <= 10): print $i; $i++; endwhile;</PRE ></TD ></TR ></TABLE ><P ></P ></DIV > </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="control-structures.alternative-syntax.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="control-structures.do.while.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Alternative syntax for control structures</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="control-structures.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><TT CLASS="literal" >do..while</TT ></TD ></TR ></TABLE ></DIV ></BODY ></HTML >