PHP DevCenter

oreilly.comSafari Books Online.Conferences.

We've expanded our LAMP news coverage and improved our search! Search for all things LAMP across O'Reilly!

Search
Search Tips

advertisement

Print Subscribe to PHP Subscribe to Newsletters

Basic Control Structures
Pages: 1, 2

Basic looping

If the ability to control what code in a script is run and under what conditions is the first fundamental part of any true programming language, then the ability to execute the same code multiple times is a very, very close second. Let's say you would like to write a script that outputs the numbers 1 through 5 on the web browser. How would you do this? One example would be:



<?php

  echo "1<br />";
  echo "2<br />";
  echo "3<br />";
  echo "4<br />";
  echo "5<br />";

?>

Although that doesn't seem too overly complicated, consider outputting the numbers 1 through 100, or 1000, or even 1,000,000? Obviously, writing a script that contains a million echo statements is, at best, impractical. Beyond that, there are many more complex examples where the same piece of code is executed numerous times that would be impossible to duplicate in such an inefficient fashion as above. It is with this in mind that we introduce the while statement.

The while statement

The while statement is the most fundamental looping mechanism available to a PHP programmer. Although fundamentally different, it holds many similarities in syntax to an if statement, with the only real difference being that a segment of code within a while block will be executed as long as the condition in the while block is met (see figure 1). The syntax for a while loop is as follows:

While(conditions) {
// This code will execute until the conditions    
// provided no longer evaluates to true
}

Diagram of while loop.
Figure 1. Processing of a while loop.

Also in PHP Foundations:

Using MySQL from PHP, Part 2

Using MySQL from PHP

MySQL Crash Course, Part 3

MySQL Crash Course, Part 2

MySQL Crash Course

Looking at our earlier counting example, a much easier and more effective way to produce the same results using a while loop would be:

<?php

  $count = 1;
	
  while($count <= 5) {
	
  echo $count."<br />";
   $count++;

  }

?>

As expected, the output for both examples is identical. Notice that by simply changing a few small aspects of this example, you can change the behavior of the while loop completely. (For example, instead of $count++ you could use $count += 2 and display only odd numbers.)

Infinite loops

What would have happened if we had forgotten to include the increment of $count in the body of our while loop? The variable $count would have never been incremented and therefore would have never reached the value of 5. Because of this, the conditional $count <= 5 would always evaluate to true and the program would never leave the while loop. This situation, called an infinite loop, is a common mistake by many programmers. Be careful when using while loops (or any type of loop discussed) to ensure that the program will eventually terminate.

Note: PHP will not allow a program to run longer than a specific period of time (determined by the system administrator) without special settings. Usually the default settings give any reasonable script enough time to complete without premature termination. However, there are times when a processor-intensive script's running time exceeds the default maximum time. In these cases, please consult the PHP documentation for instructions on how to extend the run time from within your PHP scripts.

In my next article I will discuss with you a more specialized version of a while loop called a for loop, as well as the methods behind multi-condition if statements.

Notes on embedding code blocks

When writing programs, it is often common to embed conditions, or even other loops, within other loops or conditionals. For example, the following will count from 1 to 5 but display the string "Magic Number!" before it displays the number 3:

<?php

  $count = 1;
	
  while($count <= 5) {
	
   if($count == 3) {

    echo "Magic Number!<br />";
			
   }

   echo $count."<br />";

   $count++;
  }

?>

This feature is an important part of the language and is used quite frequently; it can be used in any syntax where a code block (distinguished by the { and } symbols) exists.

John Coggeshall is a a PHP consultant and author who started losing sleep over PHP around five years ago.


Read more PHP Foundations columns.

Return to the PHP DevCenter.




Recommended for You

Tagged Articles

Be the first to post this article to del.icio.us

Sponsored Resources

  • Inside Lightroom
Advertisement

Sponsored by:

Sign up today to receive special discounts,
product alerts, and news from O'Reilly.
Privacy Policy >
View Sample Newsletter >
  • Youtube
  • http://www.youtube.com/OreillyMedia
  • Twitter
  • Subscribe
  • View All RSS Feeds >
O'Reilly Media

800-889-8969 or 707-827-7019
Monday-Friday 7:30am-5pm PT
©2011, O'Reilly Media, Inc.
All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners.
  • About O'Reilly
  • Academic Solutions
  • Contacts
  • Customer Service
  • Careers
  • Press Room
  • Privacy Policy
  • Terms of Service
  • Writing for O'Reilly
  • Community
  • Authors
  • Forums
  • Membership
  • Newsletters
  • RSS Feeds
  • User Groups
  • Partner Sites
  • makezine.com
  • makerfaire.com
  • craftzine.com
  • igniteshow.com
  • PayPal Developer Zone
  • O'Reilly Insights on Forbes.com