Instructiunile For si While
Acum vom vorbii de asa zisele bucle/loop-uri care repeta un bloc de cod de n ori, deja stiti de bucle de cand am vorbit despre foreach.
1. Instructiunea For
Instructiunea For se repeta de un numar fix de ori.(in cazuri normale) In instructiunea for exista in majoritatea cazurilor si o variabila ce ne spune la ce numar a ajuns.
Instructiunea for este de forma:
<?php for(expresia1, expresia2, expresia3){ cod de executat } ?>
- expresia1 este executat o singura data, cand bulca incepe
- expresia2 determina cand se opreste bulca. Cand expresia2 returneaza false atunci se opreste.
- expresia3 se executa de fiecare data in bucla.
<?php for($i=1; $i <= 5; $i++){ echo "Am ajuns la numarul <b>$i</b> <br/>"; } ?>Output:
Dupa cum vezi cand for a ajuns la numarul 5 s-a oprit.
Instructiunea for poate fi oprita cu ajutorul break; Un exemplu:
<?php for ($i=1; ; $i++) { if($i >= 3){ echo "M-am oprit la numarul <b>$i</b> <br/>"; break; } echo "Sunt la numarul <b>$i</b>. <br/>"; } ?>Output:
Banuiesc ca ati observat ca nici una din expresii nu este obligatorie. Ne putem juca cu ele cum dorim.
Instructiunea for mai are o varianta asemanatoare if. Mai multe veti vedea in exemplu urmator:
<?php for ($i=1; ; $i++): if($i >= 3){ echo "M-am oprit la numarul <b>$i</b> <br/>"; break; } echo "Sunt la numarul <b>$i</b>. <br/>"; endfor; ?>Output:
Dupa cum vedeti aceasta varianta este mult mai clean, deci recomand folosirea ei cat mai des cu putinta.
2. Instructiunea While
Intructiunea while, tot o bucla, se repeta cat timp conditia este true si se opreste cand este false. While este folosita de cele mai multe ori cand se extrag date din mysql, dar nu doar pentru asta desigur.
Acum vom incerca sa cream o bucla cu while care va imita for.
<?php $i = 1; $max = 3; while (true) { if($i >= $max){ echo "M-am oprit la numarul <b>$i</b> <br/>"; break; } else{ echo "Sunt la numarul <b>$i</b>. <br/>"; } $i++; } ?>Output:
While mai are si o forma asemanatoare if-ului. Mai multe veti vedea in exemplu urmator:
<?php $i = 1; $max = 3; while (true): if($i >= $max){ echo "M-am oprit la numarul <b>$i</b> <br/>"; break; } else{ echo "Sunt la numarul <b>$i</b>. <br/>"; } $i++; endwhile; ?>Output:
Aceasta varianta este mult mai clean si mai frumoasa, iar eu recomand cu caldura sa o folositi pe aceasta.
Cam atat si cu lectia aceasta, pentru mai multe exemple cu for consultati pagina aceasta si pentru mai multe exemple cu while consultati pagina aceasta .
Tags: Curs It, Programare Web, Tutoriale, Php