Bucla do...while în PHP
O buclă do...while își rulează codul întotdeauna cel puțin o dată. După această primă rulare, verifică condiția și reia bucla atâta timp cât condiția rămâne adevărată.
Notă: Acest comportament se datorează faptului că testul se află la baza buclei, după cod. Nici măcar o condiție falsă de la bun început nu poate opri prima rulare.
Bazele buclei do while
$i pornește de la 1, iar bucla îl afișează și îi adaugă 1 până când $i nu mai este mai mic decât 6:
Ieșire: script PHP
<?php
$i = 1;
do {
echo $i;
$i++;
} while ($i < 6);
?>
Do while cu o condiție falsă
Aici $i pornește de la 8, deci nu trece testul $i < 6 încă de la început. Valoarea este totuși afișată o dată, pentru că PHP se uită la condiție abia după ce blocul de cod a rulat:
Ieșire: script PHP
<?php
$i = 8;
do {
echo $i;
$i++;
} while ($i < 6);
?>
Sintaxa do while
Forma generală arată așa, cu condiția scrisă după acolada de închidere:
do {
// code to be executed
} while (condition);
Instrucțiunea break în PHP
Instrucțiunea break încheie mai devreme o buclă do...while, indiferent dacă condiția ei mai este adevărată sau nu.
Oprirea buclei cu break
Afișarea se oprește când $i ajunge la 3, așa că apar doar 1 și 2:
Ieșire: script PHP
<?php
$i = 1;
do {
if ($i == 3) break;
echo $i;
$i++;
} while ($i < 6);
?>
Instrucțiunea continue în PHP
Ca să sari peste o singură trecere, folosește continue. Restul acelei iterații este abandonat, iar bucla continuă cu următoarea.
Sărirea unei iterații cu continue
Observă că $i este mărit la începutul corpului, înainte de verificare. Când este egal cu 3, echo este sărit, așa că 3 lipsește din rezultat:
Ieșire: script PHP
<?php
$i = 0;
do {
$i++;
if ($i == 3) continue;
echo $i;
} while ($i < 6);
?>