Php While Loop Continue Doesn t Work
Today, we're going to discuss control structures and loops in PHP. I'll show you how to use all the main control structures that are supported in PHP, like if, else, for, foreach, while, and more.
What Is a Control Structure?
In simple terms, a control structure allows you to control the flow of code execution in your application. Generally, a program is executed sequentially, line by line, and a control structure allows you to alter that flow, usually depending on certain conditions.
Control structures are core features of the PHP language that allow your script to respond differently to different inputs or situations. This could allow your script to give different responses based on user input, file contents, or some other data.
The following flowchart explains how a control structure works in PHP.
As you can see in the above diagram, first a condition is checked. If the condition is true, the conditional code will be executed. The important thing to note here is that code execution continues normally after conditional code execution.
Let's consider the following example.
In the above example, the program checks whether or not the user is logged in. Based on the user's login status, they will be redirected to either theLogin page or theMy Account page. In this case, a control structure ends code execution by redirecting users to a different page. This is a crucial ability of the PHP language.
PHP supports a number of different control structures:
-
if -
else -
elseif -
switch -
while -
do-while -
for -
foreach - and more
Let's take a look at a few of these control structures with examples.
Learning PHP Control Structures
In the previous section, we learned the basics of control structures in PHP and their usefulness in application development. In this section, we'll go through a couple of important control structures that you'll end up using frequently in your day-to-day application development.
PHP If Statement
Theif construct allows you to execute a piece of code if the expression provided along with it evaluates to true.
Let's have a look at the following example to understand how it actually works.
<?php $age = 50; if ($age > 30) { echo "Your age is greater than 30!"; } ?> The above example should output theYour age is greater than 30! message since the expression evaluates to true. In fact, if you want to execute only a single statement, the above example can be rewritten without brackets, as shown in the following snippet.
<?php $age = 50; if ($age > 30) echo "Your age is greater than 30!"; ?>
On the other hand, if you have more than one statement to execute, you must use brackets, as shown in the following snippet.
<?php if (is_array($user)) { $user_id = isset($user['user_id']) ? $user['user_id'] : ''; $username = isset($user['username']) ? $user['username'] : ''; // and more statements... } ?> PHP Else Statement
In the previous section, we discussed theif construct, which allows you to execute a piece of code if the expression evaluates to true. On the other hand, if the expression evaluates to false, it won't do anything. More often than not, you also want to execute a different code snippet if the expression evaluates to false. That's where theelse statement comes into the picture.
You always use theelse statement in conjunction with anif statement. Basically, you can define it as shown in the following pseudo-code.
if (expression) { // code is executed if the expression evaluates to TRUE } else { // code is executed if the expression evaluates to FALSE } Let's revise the previous example to understand how it works.
<?php $age = 50; if ($age < 30) { echo "Your age is less than 30!"; } else { echo "Your age is greater than or equal to 30!"; } ?> So when you have two choices, and one of them must be executed, you can use theif-else construct.
PHP Else If Statement
We can consider theelseif statement as an extension to theif-else construct. If you've got more than two choices to choose from, you can use theelseif statement.
Let's study the basic structure of theelseif statement, as shown in the following pseudo-code.
if (expression1) { // code is executed if the expression1 evaluates to TRUE } elseif (expression2) { // code is executed if the expression2 evaluates to TRUE } elseif (expression3) { // code is executed if the expression3 evaluates to TRUE } else { // code is executed if the expression1, expression2 and expression3 evaluates to FALSE, a default choice } Again, let's try to understand it using a real-world example.
<?php $age = 50; if ($age < 30) { echo "Your age is less than 30!"; } elseif ($age > 30 && $age < 40) { echo "Your age is between 30 and 40!"; } elseif ($age > 40 && $age < 50) { echo "Your age is between 40 and 50!"; } else { echo "Your age is greater than 50!"; } ?> As you can see in the above example, we have multiple conditions, so we've used a series ofelseif statements. In the event that allif conditions evaluate to false, it executes the code provided in the lastelse statement.
PHP Switch Statement
The switch statement is somewhat similar to theelseif statement which we've just discussed in the previous section. The only difference is the expression which is being checked.
In the case of theelseif statement, you have a set of different conditions, and an appropriate action will be executed based on a condition. On the other hand, if you want to compare a variable with different values, you can use theswitch statement.
As usual, an example is the best way to understand theswitch statement.
<?php $favourite_site = 'Code'; switch ($favourite_site) { case 'Business': echo "My favourite site is business.tutsplus.com!"; break; case 'Code': echo "My favourite site is code.tutsplus.com!"; break; case 'Web Design': echo "My favourite site is webdesign.tutsplus.com!"; break; case 'Music': echo "My favourite site is music.tutsplus.com!"; break; case 'Photography': echo "My favourite site is photography.tutsplus.com!"; break; default: echo "I like everything at tutsplus.com!"; } ?> As you can see in the above example, we want to check the value of the$favourite_site variable, and based on the value of the$favourite_site variable, we want to print a message.
For each value you want to check with the$favourite_site variable, you have to define thecase block. If the value is matched with a case, the code associated with that case block will be executed. After that, you need to use thebreak statement to end code execution. If you don't use thebreak statement, script execution will be continued up to the last block in the switch statement.
Finally, if you want to execute a piece of code if the variable's value doesn't match any case, you can define it under thedefault block. Of course, it's not mandatory—it's just a way to provide adefault case.
So that's the story of conditional control structures. We'll discuss loops in PHP in the next section.
Loops in PHP
Loops in PHP are useful when you want to execute a piece of code repeatedly until a condition evaluates to false. So code is executed repeatedly as long as a condition evaluates to true, and as soon as the condition evaluates to false, the script continues executing the code after the loop.
The following flowchart explains how loops work in PHP.
As you can see in the above screenshot, a loop contains a condition. If the condition evaluates to true, the conditional code is executed. After execution of the conditional code, control goes back to the loop condition, and the flow continues until the condition evaluates to false.
In this section, we'll go through the different types of loops supported in PHP.
While Loop in PHP
Thewhile loop is used when you want to execute a piece of code repeatedly until thewhile condition evaluates to false.
You can define it as shown in the following pseudo-code.
while (expression) { // code to execute as long as expression evaluates to TRUE } Let's have a look at a real-world example to understand how thewhile loop works in PHP.
<?php $max = 0; echo $i = 0; echo ","; echo $j = 1; echo ","; $result=0; while ($max < 10 ) { $result = $i + $j; $i = $j; $j = $result; $max = $max + 1; echo $result; echo ","; } ?> If you're familiar with the Fibonacci series, you might recognize what the above program does—it outputs the Fibonacci series for the first ten numbers. Thewhile loop is generally used when you don't know the number of iterations that are going to take place in a loop.
Do-While Loop in PHP
Thedo-while loop is very similar to thewhile loop, with the only difference being that the while condition is checked at the end of the first iteration. Thus, we can guarantee that the loop code is executed at least once, irrespective of the result of the while expression.
Let's have a look at the syntax of thedo-while loop.
do { // code to execute } while (expression); Let's go through a real-world to understand possible cases where you can use thedo-while loop.
<?php $handle = fopen("file.txt", "r"); if ($handle) { do { $line = fgets($handle); // process the line content } while($line !== false); } fclose($handle); ?> In the above example, we're trying to read a file line by line. Firstly, we've opened a file for reading. In our case, we're not sure if the file contains any content at all. Thus, we need to execute thefgets function at least once to check if a file contains any content. So we can use thedo-while loop here.do-while evaluates the conditionafter the first iteration of the loop.
For Loop in PHP
Generally, thefor loop is used to execute a piece of code a specific number of times. In other words, if you already know the number of times you want to execute a block of code, it's thefor loop which is the best choice.
Let's have a look at the syntax of thefor loop.
for (expr1; expr2; expr3) { // code to execute } Theexpr1 expression is used to initialize variables, and it's always executed. Theexpr2 expression is also executed at the beginning of a loop, and if it evaluates to true, the loop code is executed. After execution of the loop code, theexpr3 is executed. Generally, theexpr3 is used to alter the value of a variable which is used in theexpr2 expression.
Let's go through the following example to see how it works.
<?php for ($i=1; $i<=10; ++$i) { echo sprintf("The square of %d is %d.</br>", $i, $i*$i); } ?> The above program outputs the square of the first ten numbers. It initializes$i to 1, repeats as long as$i is less than or equal to 10, and adds 1 to$i at each iteration.
For Each in PHP
Theforeach loop is used to iterate over array variables. If you have an array variable, and you want to go through each element of that array, theforeach loop is the best choice.
Let's have a look at a couple of examples.
<?php $fruits = array('apple', 'banana', 'orange', 'grapes'); foreach ($fruits as $fruit) { echo $fruit; echo "<br/>"; } $employee = array('name' => 'John Smith', 'age' => 30, 'profession' => 'Software Engineer'); foreach ($employee as $key => $value) { echo sprintf("%s: %s</br>", $key, $value); echo "<br/>"; } ?> If you want to access array values, you can use the first version of theforeach loop, as shown in the above example. On the other hand, if you want to access both a key and a value, you can do it as shown in the$employee example above.
Breaking Out of the Loop
There are times when you might want to break out of a loop before it runs its course. This can be achieved easily using thebreak keyword. It will get you out of the currentfor,foreach,while,do-while, orswitch structure.
You can also usebreak to get out of multiple nested loops by supplying a numeric argument. For example, usingbreak 3 will break you out of 3 nested loops. However, you cannot pass a variable as the numeric argument if you are using a PHP version greater than or equal to 5.4.
<?php echo 'Simple Break'; for($i = 1; $i <= 2; $i++) { echo "\n".'$i = '.$i.' '; for($j = 1; $j <= 5; $j++) { if($j == 2) { break; } echo '$j = '.$j.' '; } } /* Simple Break i = 1 j = 1 i = 2 j = 1 */ echo 'Multi-level Break'; for($i = 1; $i <= 2; $i++) { echo "\n".'$i = '.$i.' '; for($j = 1; $j <= 5; $j++) { if($j == 2) { break 2; } echo '$j = '.$j.' '; } } /* Multi-level Break i = 1 j = 1 */ ?> Another keyword that can interrupt loops in PHP iscontinue. However, this only skips the rest of the current loop iteration instead of breaking out of the loop altogether. Just likebreak, you can also use a numerical value withcontinue to specify how many nested loops it should skip for the current iteration.
<?php echo 'Simple Continue'; for($i = 1; $i <= 2; $i++) { echo "\n".'$i = '.$i.' '; for($j = 1; $j <= 5; $j++) { if($j == 2) { continue; } echo '$j = '.$j.' '; } } /* Simple Continue i = 1 j = 1 j = 3 j = 4 j = 5 i = 2 j = 1 j = 3 j = 4 j = 5 */ echo 'Multi-level Continue'; for($i = 1; $i <= 2; $i++) { echo "\n".'$i = '.$i.' '; for($j = 1; $j <= 5; $j++) { if($j == 2) { continue 2; } echo '$j = '.$j.' '; } } /* Multi-level Continue i = 1 j = 1 i = 2 j = 1 */ ?> Conclusion
In this article, we discussed different control structures and loops in PHP. They are an essential part of PHP—or any programming language for that matter.
Learn PHP With a Free Online Course
If you want to learn PHP, check out our free online course on PHP fundamentals!
In this course, you'll learn the fundamentals of PHP programming. You'll start with the basics, learning how PHP works and writing simple PHP loops and functions. Then you'll build up to coding classes for simple object-oriented programming (OOP). Along the way, you'll learn all the most important skills for writing apps for the web: you'll get a chance to practice responding to GET and POST requests, parsing JSON, authenticating users, and using a MySQL database.
Did you find this post useful?
Source: https://code.tutsplus.com/tutorials/php-control-structures-and-loops--cms-31999
0 Response to "Php While Loop Continue Doesn t Work"
Отправить комментарий