В данной заметке коротко о циклах в PHP и управлении этими самыми циклами.

Навигация по статье:

Операторы инкремента и декремента

//Постфиксный инкремент
$x = 1;
echo "Должно быть 1: " . $x++;
echo "Должно быть 2: " . $x;

//Что и
echo "Должно быть 1: $x"; $x += 1;

//Префиксный инкремент
$x = 1;
echo "Должно быть 2: " . ++$x;
echo "Должно быть 2: " . $x;

//Что и
$x += 1; echo "Должно быть 2: $x";

Цикл for

for (Часть А; Часть B; Часть С) {
  // Тело цикла
}

for ($i = 1; $i <= 10; $i++) {
  echo $i;
}

for ($i = 1; $i <= 10; print $i++);

Цикл while

while (Условие) {
  // Тело цикла
}

$i = 1;
while ($i <= 10) {
  echo $i++;	
}

// Бесконечный цикл
while (true);

Цикл do-while

$i = 100;

do {
     echo $i++;
} while ($i <=10);

Управление циклами

// Прерывание цикла
$i = 1;
while ($i <= 10) {
  echo $i++;
  if($i == 5) break;
}

// Продолжение цикла
$i = 0;
while ($i < 9) {
  $i++;
  if($i == 5) continue;
  echo $i;
}

// Управление вложенными циклами
$i = 1; $j = 1;
while ($j <= 10) {
  while ($i <= 10) {
    echo $i++;
    if($i == 5) break 2;
  }
  $j++;
}

Цикл foreach

$arr = ['a' => 'one', 'b' => 'two', 'c' => 'three'];
foreach ($arr as $val) {
  echo "$val\n";
}

/* 
Результат:
one
two
three
*/

foreach ($arr as $key=> $val) {
  echo "$key: $val\n";
}

/*
Результат:
a : one
b : two
c : three
*/

$nums = [1, 2, 3, 4, 5];
foreach ($arr as $val) {
  $val *= 10;
}

// Массив не изменился
foreach ($arr as &$val) {
  $val *= 10;
}
// Теперь массив: [10, 20, 30, 40, 50]