Cursuri online, WebDesign, html, css, php, mysql, linux | Invata-Online.ro
IntroducereScrierea scripturilor PHP elementareTipuri de siruri si variabileVariabile si operatori PHPUtilizare formulare HTML cu PHP, $ GET si $ POSTVariabile de mediu si eroriConstante si tipuri de variabileInstructiuni conditionale if() elseInstructiuni conditionale switchInstructiuni repetitive for() si while()Utilizare matrice ArrayUtilizare Array (matrice) (2)Creare tabel HTML din ArrayUtilizarea functiilorVariabile si referinte in functiiData si Timpul in PHPLucrul cu siruri (1)Lucrul cu siruri (2)Expresii regulate, regexUtilizarea variabilelor cookieLucrul cu fisiere (1)Lucrul cu fisiere (2)Lucrul cu fisiere (3)Utilizarea cataloagelor (Directoare)Utilizarea de sesiuni PHPOptiuni pentru utilizarea caracterelor specialeNotiuni fundamentale despre bazele de date si SQL (1)Notiuni fundamentale despre bazele de date si SQL (2)Notiuni fundamentale despre bazele de date si SQL (3)PHP MySQL Introducere si Tipuri de DatePHP MySQL utilizare MySQLiPHP MySQL INSERT INTOPHP MySQL SELECT, ORDER BYSelect in doua tabele MySQLMySQL INNER JOIN, LEFT JOIN, RIGHT JOINPHP MySQL WHERE si LIKEPHP MySQL UPDATEPHP MySQL DELETEPHP PDO Introducere si Conectari la Baze de DatePHP PDO exec (INSERT, UPDATE, DELETE) MySQLPHP PDO Select, fetchPHP PDO prepare si executePHP PDO setAttribute si beginTransactionPHP Functii Anonime ClosuresTrimitere date la o adresa de e mailTrimitere e mail cu tag uri si atasamentCreare imagini cu PHPCreare PDF cu PHPCreare PDF cu PHP (2)Utilizare FTP cu PHPPHP OOP Clase si Obiecte, Metoda constructorPHP OOP metode Accesor si DestructorOOP Constante, Proprietati si Metode StaticePHP OOP Clase extinse si MostenireMetode magice get, set, call, toStringOOP Clase abstract si interfaceFunctii cu Parametri object si arrayInlantuire mai multe metode in PHP OOPPHP getElementById si getElementsByTagNameLucru cu atribute HTML in PHPDocumente XMLLucru cu XML DOMLucru cu XML SAXPHP XML SimpleXMLUtilizarea bazelor de date folosind PHPUtilizarea bazelor de date folosind PHP (2)Lucrul cu baze de date MySQL, seturi de rezultateFunctii pentru ArrayFunctii PHP matematiceFunctii pentru lucru cu functiiFunctii pentru siruri (strings)Functii pentru fisiere si directoareMySQL Alias si functiiFunctii utile pentru lucrul cu imaginiFunctii PHP clase si obiecte

Instructiuni repetitive for() si while()

  • Invatati sa întelegeti si sa scrieti instructiunile while(), do while si for()

Scrierea instructiunilor "for"

Instructiunea for() este o instructiune bucla sau o instructiune iterativa; cu alte cuvinte, o instructiune care executa în mod repetat instructiunile asociate.
Sintaxa generala a instructiunii for este urmatoarea:

for(expresie1; conditie; expresie2) {
      Instructiune(1);
      Instructiune(2);
      Instructiune(3);
      .............
}
expresie1 se executa o singura data si anume la inceputul instructiunii; conditie este o expresie logica ; instructiunea for() se executa atita timp cat valoarea expresiei : conditie are valoarea TRUE.
De fiecare data dupa executia instructiunilor dintre acolade se executa : expresie2.
Iata un exemplu practic de utilizare a unei instructiuni "for":
<?php
$suma = 0;
for ($n=1; $n<=3; $n++) {
      $suma += $n;
      echo "<br /> Suma intregilor de la 1 la $n este $suma.";
}
?>
Rezultatul afisat va fi:
Suma intregilor de la 1 la 1 este 1
Suma intregilor de la 1 la 2 este 3
Suma intregilor de la 1 la 3 este 6
În exemplu se calculeaza suma întregilor cuprinsi între l si 3. Pentru aceasta, mai întâi se initializeaza variabila $suma la valoarea 0. Apoi se executa o instructiune for() care incrementeaza în mod repetat valoarea variabilei $suma.
Pentru a vedea cum functioneaza mecanismul acestei instructiuni, sa examinam componentele instructiunilor for().
Instructiunea "for" include trei expresii, care apar între paranteze; fiecare expresie este separata de vecina sa printr-un caracter punct si virgula(;).
  • Prima expresie este expresia de initializare. Aceasta se executa atunci când PHP ajunge la instructiunea for(). In exemplu, expresia de initializare atribuie valoarea variabilei $n, ($n=1) variabila denumita "variabila de ciclare" sau "index".
  • A doua expresie este expresia de test. Aceasta este o expresie conditionala care indica daca se executa sau nu corpul instructiunii, în general, face referire la variabila de ciclare. In cadrul exemplului, expresia de test compara valoarea variabilei $n cu valoarea 3 ($n <= 3).
    Expresia de test este evaluata pentru prima data imediat dupa evaluarea expresiei de initializare.
  • Cea de-a treia expresie este expresia pas. în general, aceasta modifica una sau mai multe variabile la care se face referire în expresia test. în cadrul exemplului, expresia pas incrementeaza valoarea variabilei $n ($n++).
Dupa care se trece la corpul instructiunii for(), aici, instructiunea $suma += $n si echo "Suma intregilor de la 1 la $n este $suma."; reprezinta corpul instructiunii for.
Dupa executarea corpului functiei se verifica din nou expresia de test (conditie) dintre paranteze, daca rezultatul este TRUE se trece mai departe la expresia "pas" (a treia din paranteze) si mai departe la corpul functiei for(). Dupa aia din nou la expresia de test dintre paranteze..., pana cand rezultatul este FALSE (in exemplu nostru, $n>3).

Instructiunea for() este utila pentru numarare si executarea în mod repetat a unor actiuni.


Scrierea instructiuni while

O instructiune while() sau do while are o singura conditie. Fara o expresie de initializare sau o expresie pas; opereaza similar ca o instructiune "for()". în consecinta, urmatoarele doua instructiuni sunt echivalente:

for ( ; $i<= 3; ) { $suma += $i; }
while ($i <= 3) { $suma ++ $i; }
Instructiunea while() executa un set de instructiuni atita timp cit valoarea expresiei "conditie" este adevarata:
Forma generala a instructiuni while() este urmatoarea :
while(conditie) {
      Instructiune(1);
      Instructiune(2);
      Instructiune(3);
      .............
}
Setul de instructiuni Instructiune(1), Instructiune(2), etc... se vor executa atita timp cit valoarea expresiei logice "conditie" are valoarea TRUE.
Sa studiem un exemplu practic:
<?php
$n = 0;
$suma = 0;
while ($n <= 3) {
      $suma = $suma +$n;
      $n++;
}

echo "Suma este $suma";
?>
In scriptul de mai sus avem la inceput (in afara lui "while") $n = 0 si $suma = 0, se verifica conditia din paranteza a functiei while() ($n<=3), cum aceasta este TRUE (deoarece la aceasta etapa $n = 0), se trece la executarea corpului functiei unde : $suma = $suma + $n si $n++ (adica $n = $n + 1), astfel acum $n va fi egal cu 1, se verifica din nou conditia din paranteze, care este TRUE ($n fiind acum egal cu 1), se executa iar corpul functiei..., si tot asa se executa aceasta "bucla" pana cand la verificarea conditiei din paranteze rezultatul este FALSE, in acest moment se incheie executia functiei while() si se trece mai departe la urmatoarea functie (in cazul nostru: echo "Suma este $suma";, unde dupa executia functiei while() $suma a devenit egala cu 6).
In browser va aparea urmatorul rezultat:
Suma este 6

Scrierea instructiuni do while

Diferenta dintre instructiunea while() si instructiunea do while este urmatoarea: daca la instructiunea while() se verifica intai conditia si numai daca rezultatul este TRUE se trece la executarea corpului functiei, in cazul functiei do while intai se executa corpul functiei si dupa aceea se verifica conditia. De la do while corpul functiei va fi executat cel putin o singura data, indiferent de rezultatul conditiei.
Forma generala a instructiuni do while este urmatoarea :

do {
      Instructiune(1);
      Instructiune(2);
      Instructiune(3);
      .............
} while(conditie);
Iata exemplul prezentat la functia while(), de data aceasta folosind functia do while :
<?php
$n = 0;
$suma = 0;
do {
      $suma = $suma +$n;
      $n++;
} while ($n <= 3);

echo "Suma este $suma";
?>
Rezultatul va fi acelasi: "Suma exte 6".

În general, este bine sa fiti prudent si sa folositi instructiunea while(), care evalueaza o conditie de test înainte, de executarea corpului acesteia. Astfel, se evita executarea eronata a corpului buclei.





Webdesign by Discant Solutions