TUTORIALE TIC COLEGIUL ECONOMIC "DPM" ALBA IULIA Profesor
Simona Dogaru ,
ISBN 978-973-0-31260-7
; Alba Iulia, 2020 ISBN
978-973-0-31261-4 ; Alba Iulia, 2020
|
Acestea se folosesc pentru a putea lua decizii.
Aceste decizii se iau în urma evaluării unor expresii condiţionale şi se vor executa diverse instrucţiuni. Expresiile pot avea una din valorile true (adevărat) sau false (fals). Constanta true are valoarea 1 şi false are valoarea 0.
În construcţia expresiilor condiţionale se pot utiliza următorii operatori relaţionali:
<; >; <= (≤); >= (≥);
a= =b (valoarea lui a este egală cu a lui b);
a!=b ( valoarea lui a este diferită de a lui b);
a= = = b este adevărată dacă a şi b au aceeaşi valoare şi sunt de acelaşi tip
a! = = b este adevărată dacă valoarea lui a diferă de b sau dacă au tipuri diferite
Putem forma expresii condiţionale astfel:
1) Dacă $x este variabilă numerică cu valoarea diferită de zero atunci construcţia $x are valoarea true iar dacă are valoarea egală zero atunci $x=false;
2) Dacă folosim un şir vid sau cu valoarea "\0" atunci are valoarea = false altfel este true;
3) Dacă folosim un tablou sau un obiect vid atunci vor avea valoarea =false.
Putem folosi şi operatori logici:
x AND y (x && y): expresia este true dacă x şi y sunt adevărate altfel este false
x OR y (x ||y) : expresia este true dacă cel puţin x sau y este adevărată altfel este false
x XOR y : expresia este true dacă numai x sau y este adevărată altfel este false
!x: este true dacă x este false
De exemplu dorim să exprimăm relaţia matematică
atunci ea va avea forma:
sau
se va scrie:
.
Are sintaxa:
IF(expresie condiţională)
S;
şi efectul este : se evaluează expresie condiţională. Dacă este true atunci se va executa instrucţiunea S.
if ($x<18)
echo " Inca nu esti major!";
vom analiza efectul acestei instrucţiuni simple prin următoarea aplicaţie. Si anume, în fişierul HTML vom introduce o valoare numerică şi luăm decizia dacă a ajuns la majorat sau nu.
Pas 1. Salvăm fişierul p6_1.php în folderul xampp/ htdocs/ probe cu următorul conţinut:
<html>
<head><tile> Instructiunea
IF</title></head>
<body>
<?php
$numar=$_POST['numar'];
echo "Varsta dvs
este: $numar";
if ($numar<18)
echo
"<br> Inca nu sunteti major!";
?>
</body>
</html>
Observaţie:
După cum vedeţi, ne folosim de
valoarea POST, iar datele nu sunt afişate decât dacă le definim noi ( ex: $_POST[‘numar’]
). Numele din interiorul variabilei $_POST este
numele elementului din formular.
Pas 2. În acelaşi folder vom salva fişierul p6_1.html care va conţine formularul de mai jos.
<html>
<head><title>New Page
1</title></head>
<body>
<form method="POST" action="p6_1.php">
Introduceti
varsta dvs<br>
<input
type="text" name="numar" size="6">
</form>
</body>
</html>
Pas 3. Deschideţi fişierul HTML cu ajutorul unui browser şi completaţi URL-ul
(http://localhost/probe/p6_1.html). După ce introduceţi un număr şi apăsaţi Enter
urmăriţi răspunsul.
Pas 4. După ce scriptul de prelucrare p6_1.php este executat, acesta va afişa un mesaj ca mai jos.
În cazul în care dorim să fie executate mai multe instrucţiuni acestea se vor grupa într-un bloc de instrucţiuni cu ajutorul acoladelor astfel
If (expresie_condiţională)
{ S; }
if ($x<18)
{ echo "
<br> Ai sub 18 ani";
echo
"<br> Deci inca nu esti major!";
}
Dacă dorim să avem o alternativă pentru varianta când expresia condiţională este falsă vom folosi instrucţiunea IF…ELSE.
if ($x<18)
echo "
<br> Ai sub 18 ani";
else
echo
"<br> Esti major";
Dacă variabila $x are o valoare mai mare decât 18 (adică expresia condiţională este falsă) va fi afişat mesajul cu „ Eşti major”.
Putem utiliza mai multe instrucţiuni IF cu ELSEIF, astfel:
if ($ani<7)
echo
" <br> Inca esti la gradinita";
elseif ($ani<16)
echo
"<br> Esti la scoala gimnaziala";
elseif ($ani<18)
echo
"<br> Esti liceean";
else
echo"<br>
Esti major si poti deveni student";
Limbajul PHP analizează succesiv expresiile condiţionale pornind de la prima(de sus în jos) şi va afişa mesajul de la cea găsită adevărată. Dacă nici una nu este adevărată atunci se va afişa ultimul mesaj.
Se utilizează atunci când decizia ce trebuie luată face parte dintr-un set de valori.
switch($x) {
case 5:
echo "copil mic"; break;
case 12: echo"
adolescent";break;
case 20: echo"
student"; break;
default: echo
" posibil sa fie adult";
}
Decizia luată prin switch depinde de valoarea variabilei $x. Instrucţiunea default este opţională. Va fi executată instrucţiunea case găsită adevărată.
De exemplu dacă $x= =5 atunci va fi afişat primul mesaj. Dacă valoarea lui $x nu corespunde cu nici unul din cele 3 cazuri atunci va fi executat default, dacă există. Instrucţiunea break determină încheierea execuţiei instrucţiunii switch trecând controlul la următoarea instrucţiune de după switch.
Este o instrucţiune repetitivă sau ciclică care va repeta executarea unui grup de instrucţiuni până când expresia condiţională devine falsă.
for( $i=1; $i<=3; $i++)
{ echo "<br> Pasul $i : ";
echo "
Inveti tot mai bine";
}
va determina afişarea : Pasul 1 : Inveti tot mai bine
Pasul 2 : Inveti tot mai bine
Pasul 3 : Inveti tot mai bine
Această instrucţiune funcţionează astfel:
FOR ( expresie 1; expresie 2; expresie 3)
{ S; }
Avem 3 expresii despărţite prin ; şi corpul instrucţiunii FOR dată de S.
expresie 1 = expresia de iniţializare. Ea se execută numai la început, când PHP ajunge la instrucţiunea FOR. Variabila $i este variabila de ciclare.
expresie 2 = este expresia condiţională care dacă este true se va executa S altfel se va ieşi din ciclul FOR şi se va executa instrucţiunea ce urmează după corpul lui FOR. Această expresie se evaluează la fiecare pas adică cu fiecare nouă valoare a lui $x.
expresie 3 = expresie care modifică valoarea variabilei $i. În cazul nostru îl măreşte pe $i cu 1 la fiecare pas.
Execuţia:
Se iniţializează $i cu 1. Se verifică
dacă $i<=3 este adevărată. Dacă da, atunci apare mesajul „Pasul 1 :
Inveti tot mai bine”. Apoi se măreşte $i cu 1 şi va rezulta $i=2. Se
verifică $i<=3=> true => mesajul „Pasul 2 : Inveti tot mai
bine” => $i=3. Se verifică $i <=3 „A” => mesajul „Pasul 3 :
Inveti tot mai bine” =>$i=4. se verifică $i<=3 „F”, moment în
care se predă controul programului următoarei instrucţiuni ce succede
pe FOR.
Deci ea este utilă când repetăm aceleaşi acţiuni. De exemplu dacă creem 4 butoane:
<html>
<head><title>
Instructiunea For</title></head>
<body>
<?php
for( $i=0; $i<4; $i++)
{ echo "<br> <input type = ='Button' value='$i'
> \n";
}
?>
</body>
</html>
după ce rulaţi scriptul va apare pagina :
Observaţie:
Observaţi că în codul scriptului am folosit simbolul apostrof în loc de ghilimele pentru type şi value deoarece echo nu acceptă în interiorul său ghilimele. Dacă începem echo cu ghilimele atunci în interiorul ei vom folosi apostroful iar dacă mesajul îl scriem între apostrofuri atunci în interiorul ei vom folosi ghilimelele. Există şi excepţia care ne permite să folosim tot ghilimele chiar dacă mesajul e scris intre ghilimele, şi anume simbolul backslash pus în faţa ghilimelelor. Dacă nu respectăm aceste condiţii se va genera eroare.
for( $i=0; $i<4; $i++)
{ echo "<br> <input type =\"Button\" value=\"$i\"' > \n";
}
sau
for( $i=0; $i<4; $i++)
{ echo '<br> <input type ="Button" value="$" > \n'; }
Instrucţiunea
WHILE şi DO…WHILE
Sunt versiuni ale lu FOR. WHILE are sintaxa :
While (expresie test)
{ S; }
Execuţia:
Pasul 1. Se evaluează expresia test.
Pasul 2. Dacă rezultatul este true se execută blocul de instrucţiuni S.
Pasul 3. Se revine la pasul 1 şi repetă 2 şi 3 până când expresia devine false şi atunci trecem la pasul 4.
Pasul 4. Se părăseşte ciclul WHILE şi se execută următoarea instrucţiune de după while.
Exemplu: Suma numerelor :1+2+3.
$i=1; $suma=0;
while ($i<=3)
{
$suma=$suma+$i;
$i++;
}
echo "Suma = $suma";
Instrucţiunea DO…WHILE seamănă cu WHILE numai că corpul instrucţiunii se execută cel puţin o dată înainte de a evalua expresia test.
$i=1; $s=0;
do
{ $s+=$i;
$i++;
}while
($i<=3);
echo "Adunarea numerelor de la 1 la 3 = $s";