freeCodeCamp/guide/english/php/loop/index.md

168 lines
2.5 KiB
Markdown

---
title: Loop
---
# PHP Loop
When you need to repeat same task for many times, you can use loop instead of keep adding same code over and over again.
In PHP have following loop statements :
- for - loop through a block of code with specific number of times.
- while - loop through a block of code if condition is true.
- do...while - loop through a block of code one and continue loop if condition is true.
- foreach - loop through a block of code for each value within an array.
Using a `break` within the loop can stop the loop execution.
# For loop
Loop through a block of code with specific number of times.
## Syntax
```
for (init counter; condition; counter increment or decrement)
{
// Code to be executed
}
```
## Example
```php
<?php
for($index = 0; $index < 5; $index ++)
{
echo "Current loop counter ".$index.".\n";
}
?>
```
## Output
```
> Current loop counter 0.
> Current loop counter 1.
> Current loop counter 2.
> Current loop counter 3.
> Current loop counter 4.
```
# While loop
Loop through a block of code if condition is true.
## Syntax
```
while (condition)
{
// Code to be executed
}
```
## Example
```php
<?php
$index = 10;
while ($index >= 0)
{
echo "The index is ".$index.".\n";
$index--;
}
?>
```
## Output
```
> The index is 10.
> The index is 9.
> The index is 8.
> The index is 7.
> The index is 6.
> The index is 5.
> The index is 4.
> The index is 3.
> The index is 2.
> The index is 1.
> The index is 0.
```
# Do...While loop
Loop through a block of code one and continue loop if condition is true.
## Syntax
```
do
{
// Code to be executed
}
while (condition);
```
## Example
```php
<?php
$index = 3;
do
{
// execute this at least 1 time
echo "Index: ".$index.".\n";
$index --;
}
while ($index > 0);
?>
```
## Output
```
> Index: 3.
> Index: 2.
> Index: 1.
```
# Foreach loop
Loop through a block of code for each value within an array.
## Syntax
```
foreach ($array as $value)
{
// Code to be executed
}
```
## Example
```php
<?php
$array = ["Ali", "Ah Kao", "Muthu", "Gwen", "Lucida", "Cecily", "Arthur", "Flora"];
foreach ($array as $name)
{
echo "Hi, my name is ".$name.".\n";
if ($name == "Cecily")
{
echo "\"Hello, ".$name."!\"";
// stop the loop if name is Cecily
break;
}
}
?>
```
## Output
```
> Hi, my name is Ali.
> Hi, my name is Ah Kao.
> Hi, my name is Muthu.
> Hi, my name is Gwen.
> Hi, my name is Lucida.
> Hi, my name is Cecily.
> "Hello, Cecily!"
```