Documente Academic
Documente Profesional
Documente Cultură
TEHNOLOGII WEB
Lect.dr. Adrian Runceanu
copyright@www.adrian.runceanu.ro
Curs 8
PHP
(Php: Hypertext Preprocessor)
(partea II)
04.04.2016
copyright@www.adrian.runceanu.ro
Curs 8
1. Instruciuni conditionale
1.1. Instruciunea if
1.2. Instruciunea switch
1.3. Instruciuni pentru controlul execuiei
iteraiilor
2. Instruciuni repetitive
2.1. Instruciunea while
2.2. Instruciunea do while
2.3. Instruciunea for
04.04.2016
copyright@www.adrian.runceanu.ro
Curs 8
3. Funcii
3.1. Apelarea funciilor
3.2. Funcii definite de utilizator
3.2.1. Definirea funciilor
3.2.2. Variabile automatice
3.2.3. Funcii care ntorc valori
3.2.4. Accesul la variabile declarate n exterior.
Variabile globale
3.2.5. Funcii recursive
3.2.6. Terminarea execuiei unui script
04.04.2016
copyright@www.adrian.runceanu.ro
1. Instruciuni(I)
copyright@www.adrian.runceanu.ro
1. Instruciuni(II)
copyright@www.adrian.runceanu.ro
1. Instruciuni condiionale
1. if
2. switch
care permit ramnificarea executiei
scriptului pe diverse cai, in functie de deciziile
luate in timpul executiei acestuia.
04.04.2016
copyright@www.adrian.runceanu.ro
Curs 8
1. Instruciuni conditionale
1.1. Instruciunea if
1.2. Instruciunea switch
1.3. Instruciuni pentru controlul execuiei
iteraiilor
2. Instruciuni repetitive
2.1. Instruciunea while
2.2. Instruciunea do while
2.3. Instruciunea for
04.04.2016
copyright@www.adrian.runceanu.ro
1.1. Instructiunea if
Cea mai des utilizata instructiune conditionala
este if.
Instructiunea if are urmatoarea sintaxa:
if (expresie) {
grup de instructiuni
}
Expresia expresie este evaluata la o valoare logica.
Daca aceasta este true va fi executata secventa de cod
grup, care include una sau mai multe instructiuni.
Daca sunt cel putin doua instructiuni, grupul trebuie
inclus obligatoriu intre acolade, in caz contrar fiind
executata numai prima instructiune.
04.04.2016
copyright@www.adrian.runceanu.ro
Observatie:
In mod obisnuit, sunt folosite acoladele chiar daca
grupul contine numai o singura instructiune.
Exemplu:
04.04.2016
10
copyright@www.adrian.runceanu.ro
if (expresie) { grup1 }
else { grup2 }
Daca valoarea logica a expresiei expresie evaluata de interpretorul PHP este true, va fi executat
grupul de instructiuni grup1, in caz contrar fiind
executat grup2.
04.04.2016
11
copyright@www.adrian.runceanu.ro
Exemplu:
Daca o valoare este in intervalul [1, 2], se
transmite catre browser valoarea (x+1)/2, altfel
se transmite valoarea (x-1)/2:
<?php
04.04.2016
12
copyright@www.adrian.runceanu.ro
04.04.2016
13
copyright@www.adrian.runceanu.ro
14
copyright@www.adrian.runceanu.ro
04.04.2016
15
copyright@www.adrian.runceanu.ro
16
copyright@www.adrian.runceanu.ro
Curs 8
1. Instruciuni conditionale
1.1. Instruciunea if
1.2. Instruciunea switch
1.3. Instruciuni pentru controlul execuiei
iteraiilor
2. Instruciuni repetitive
2.1. Instruciunea while
2.2. Instruciunea do while
2.3. Instruciunea for
04.04.2016
17
copyright@www.adrian.runceanu.ro
switch (expresie){
case expresie1: grup1; break;
case expresie2: grup2; break;
.....
[default: grup;]
}
Expresia expresie este comparata cu expresie1,
expresie2, .
04.04.2016
18
copyright@www.adrian.runceanu.ro
04.04.2016
19
copyright@www.adrian.runceanu.ro
Exemplu:
Daca valoarea transmisa pentru x este 1,2,3,4, atunci
valoarea respectiva este retransmisa catre utilizator
alfabetic, altfel, se va transmite un mesaj oarecare:
<?php
switch($x)
{
case (1): echo("unu"); break;
case (2): echo("doi"); break;
case (3): echo("trei"); break;
case (4): echo("patru"); break;
default : echo ("Nu este 1, 2, 3 sau 4");
}
?>
04.04.2016
20
copyright@www.adrian.runceanu.ro
Curs 8
1. Instruciuni conditionale
1.1. Instruciunea if
1.2. Instruciunea switch
1.3. Instruciuni pentru controlul execuiei
iteraiilor
2. Instruciuni repetitive
2.1. Instruciunea while
2.2. Instruciunea do while
2.3. Instruciunea for
04.04.2016
21
copyright@www.adrian.runceanu.ro
22
copyright@www.adrian.runceanu.ro
04.04.2016
23
copyright@www.adrian.runceanu.ro
Curs 8
1. Instruciuni conditionale
1.1. Instruciunea if
1.2. Instruciunea switch
1.3. Instruciuni pentru controlul execuiei
iteraiilor
2. Instruciuni repetitive
2.1. Instruciunea while
2.2. Instruciunea do while
2.3. Instruciunea for
04.04.2016
24
copyright@www.adrian.runceanu.ro
2. Instructiuni repetitive
Structurile repetitive (sau de ciclare) sunt
implementate in limbajul PHP prin intermediul
instructiunilor:
while si for (structura repetitiva conditionata
anterior)
respectiv do...while (structura repetitiva
conditionata posterior)
fiind utilizate in scopul executiei repetate a unor
secvente de cod.
Executia unei astfel de secvente poarta numele de
ciclu, iteraie sau bucl (loop).
04.04.2016
25
copyright@www.adrian.runceanu.ro
Curs 8
1. Instruciuni conditionale
1.1. Instruciunea if
1.2. Instruciunea switch
1.3. Instruciuni pentru controlul execuiei
iteraiilor
2. Instruciuni repetitive
2.1. Instruciunea while
2.2. Instruciunea do while
2.3. Instruciunea for
04.04.2016
26
copyright@www.adrian.runceanu.ro
while (expresie)
{
grup instructiuni
}
Procesorul PHP executa grupul de instructiuni grup in
mod repetat, atat timp cat expresia expresie este
evaluata cu valoarea logica true.
04.04.2016
27
copyright@www.adrian.runceanu.ro
04.04.2016
28
copyright@www.adrian.runceanu.ro
Exemplu:
Se calculeaza suma:
<?php
$s=0; $i=1;
while($i <= 5)
{
$s+=$i + $i;
$i++;
}
echo ($s);
?>
04.04.2016
29
copyright@www.adrian.runceanu.ro
Curs 8
1. Instruciuni conditionale
1.1. Instruciunea if
1.2. Instruciunea switch
1.3. Instruciuni pentru controlul execuiei
iteraiilor
2. Instruciuni repetitive
2.1. Instruciunea while
2.2. Instruciunea do while
2.3. Instruciunea for
04.04.2016
30
copyright@www.adrian.runceanu.ro
do
{
grup instructiuni
} while (expresie);
04.04.2016
31
copyright@www.adrian.runceanu.ro
04.04.2016
32
copyright@www.adrian.runceanu.ro
Exemplu:
Se calculeaza suma:
<?php
$s=0; $i=1;
do
{
$s += $i + $i;
$i++;
}while($i <= 5);
echo ($s);
?>
04.04.2016
33
copyright@www.adrian.runceanu.ro
Curs 8
1. Instruciuni conditionale
1.1. Instruciunea if
1.2. Instruciunea switch
1.3. Instruciuni pentru controlul execuiei
iteraiilor
2. Instruciuni repetitive
2.1. Instruciunea while
2.2. Instruciunea do while
2.3. Instruciunea for
04.04.2016
34
copyright@www.adrian.runceanu.ro
35
copyright@www.adrian.runceanu.ro
36
copyright@www.adrian.runceanu.ro
Exemplu:
<?php
for ($i=2; $i<10; $i++) {
echo "Patratul lui ".$i." este " . $i*$i . " .<br />";
}
?>
04.04.2016
37
copyright@www.adrian.runceanu.ro
04.04.2016
38
copyright@www.adrian.runceanu.ro
39
copyright@www.adrian.runceanu.ro
40
copyright@www.adrian.runceanu.ro
Curs 8
3. Funcii
3.1. Apelarea funciilor
3.2. Funcii definite de utilizator
3.2.1. Definirea funciilor
3.2.2. Variabile automatice
3.2.3. Funcii care ntorc valori
3.2.4. Accesul la variabile declarate n exterior.
Variabile globale
3.2.5. Funcii recursive
3.2.6. Terminarea execuiei unui script
04.04.2016
41
copyright@www.adrian.runceanu.ro
3. Funcii
n PHP se pot crea funcii fr prea mari
diferene fa de ce tim din C/C++.
n programare, o funcie include o secven de
cod, care realizeaz o anumit operaie i
poate fi apelat n mod repetat, de cte ori
este necesar.
42
copyright@www.adrian.runceanu.ro
<?php
function aria_t($b, $h)
{ return $b*$h/2; }
$x=3;
$y=8;
echo (aria_t($x, $y));
?>
04.04.2016
43
copyright@www.adrian.runceanu.ro
04.04.2016
44
copyright@www.adrian.runceanu.ro
Curs 8
3. Funcii
3.1. Apelarea funciilor
3.2. Funcii definite de utilizator
3.2.1. Definirea funciilor
3.2.2. Variabile automatice
3.2.3. Funcii care ntorc valori
3.2.4. Accesul la variabile declarate n exterior.
Variabile globale
3.2.5. Funcii recursive
3.2.6. Terminarea execuiei unui script
04.04.2016
45
copyright@www.adrian.runceanu.ro
46
copyright@www.adrian.runceanu.ro
Curs 8
3. Funcii
3.1. Apelarea funciilor
3.2. Funcii definite de utilizator
3.2.1. Definirea funciilor
3.2.2. Variabile automatice
3.2.3. Funcii care ntorc valori
3.2.4. Accesul la variabile declarate n exterior.
Variabile globale
3.2.5. Funcii recursive
3.2.6. Terminarea execuiei unui script
04.04.2016
47
copyright@www.adrian.runceanu.ro
48
copyright@www.adrian.runceanu.ro
49
copyright@www.adrian.runceanu.ro
Curs 8
3. Funcii
3.1. Apelarea funciilor
3.2. Funcii definite de utilizator
3.2.1. Definirea funciilor
3.2.2. Variabile automatice
3.2.3. Funcii care ntorc valori
3.2.4. Accesul la variabile declarate n exterior.
Variabile globale
3.2.5. Funcii recursive
3.2.6. Terminarea execuiei unui script
04.04.2016
50
copyright@www.adrian.runceanu.ro
04.04.2016
51
copyright@www.adrian.runceanu.ro
Exemplu:
<?php
function bun_venit($utilizator) {
$mesaj="Bine ai venit, ".$utilizator;
echo $mesaj;
}
bun_venit ("Costica") ;
eroare
echo $mesaj;
?>
In acest exemplu, incercarea de a afisa variabila
locala $mesaj in exteriorul functiei bun_venit() se
soldeaza cu un esec, aceasta fiind o variabila locala.
04.04.2016
52
copyright@www.adrian.runceanu.ro
Curs 8
3. Funcii
3.1. Apelarea funciilor
3.2. Funcii definite de utilizator
3.2.1. Definirea funciilor
3.2.2. Variabile automatice
3.2.3. Funcii care ntorc valori
3.2.4. Accesul la variabile declarate n exterior.
Variabile globale
3.2.5. Funcii recursive
3.2.6. Terminarea execuiei unui script
04.04.2016
53
copyright@www.adrian.runceanu.ro
return expresie
Apelul instructiunii return opreste imediat executia
functiei, intoarce expresia expresie si transfera
controlul executiei programului pe linia din care s-a
realizat apelul.
Valorile intoarse pot avea orice tip, inclusiv tablou si
obiect.
04.04.2016
54
copyright@www.adrian.runceanu.ro
Exemplu:
Fie o functie avand numele cub(), care intoarce
cubul numarului primit ca argument (adica, numarul
ridicat la puterea a treia):
function cub($numar) {
return $numar*$numar*$numar; }
Dupa ce a fost definita, o functie poate fi utilizata
oriunde se doreste, inclusiv expresiile PHP, ca in
exemplul urmator:
$numar=10;
echo 'Cubul numarului ' .$numar.' este ' .cub($numar);
04.04.2016
55
<?php
function note(){
return array (9, 8, 10); }
list ($fizica, $matematica, $informatica)=note();
echo "Nota la fizica: ".$fizica.";<br />";
echo "Nota la matematica: ".$matematica.";<br />";
echo "Nota la informatica: ".$informatica.".";
?>
04.04.2016
56
copyright@www.adrian.runceanu.ro
57
copyright@www.adrian.runceanu.ro
<?php
function suma_elemente($tablou) {
$nrelem=count($tablou);
$sumaelem=0;
for($i=0; $i< $nrelem;$i++) {
$sumaelem += $tablou[$i]; }
return $sumaelem;
}
echo "Suma elementelor tabloului este ".suma_elemente(array(10,5,12)
?>
04.04.2016
58
copyright@www.adrian.runceanu.ro
59
copyright@www.adrian.runceanu.ro
Transmitere prin
referinta adresa
variabilei
<?php
function cub(&$numar) {
$numar=$numar*$numar*$numar;
}
$n=4;
cub($n);
echo $n;
?>
04.04.2016
60
copyright@www.adrian.runceanu.ro
Curs 8
3. Funcii
3.1. Apelarea funciilor
3.2. Funcii definite de utilizator
3.2.1. Definirea funciilor
3.2.2. Variabile automatice
3.2.3. Funcii care ntorc valori
3.2.4. Accesul la variabile declarate n exterior.
Variabile globale
3.2.5. Funcii recursive
3.2.6. Terminarea execuiei unui script
04.04.2016
61
copyright@www.adrian.runceanu.ro
04.04.2016
62
copyright@www.adrian.runceanu.ro
04.04.2016
63
copyright@www.adrian.runceanu.ro
64
copyright@www.adrian.runceanu.ro
<?php
function modifica(){
global $variabila;
$variabila=10;
echo $variabila;
}
modifica();
$variabila=20;
echo " ".$variabila;
?>
04.04.2016
65
copyright@www.adrian.runceanu.ro
66
copyright@www.adrian.runceanu.ro
Curs 8
3. Funcii
3.1. Apelarea funciilor
3.2. Funcii definite de utilizator
3.2.1. Definirea funciilor
3.2.2. Variabile automatice
3.2.3. Funcii care ntorc valori
3.2.4. Accesul la variabile declarate n exterior.
Variabile globale
3.2.5. Funcii recursive
3.2.6. Terminarea execuiei unui script
04.04.2016
67
copyright@www.adrian.runceanu.ro
68
copyright@www.adrian.runceanu.ro
<?php
function factorial($n) {
if($n==1)
return 1;
else
return $n*factorial($n-1);
}
echo "Factorial = ".factorial(5);
?>
04.04.2016
69
copyright@www.adrian.runceanu.ro
Curs 8
3. Funcii
3.1. Apelarea funciilor
3.2. Funcii definite de utilizator
3.2.1. Definirea funciilor
3.2.2. Variabile automatice
3.2.3. Funcii care ntorc valori
3.2.4. Accesul la variabile declarate n exterior.
Variabile globale
3.2.5. Funcii recursive
3.2.6. Terminarea execuiei unui script
04.04.2016
70
copyright@www.adrian.runceanu.ro
<?php
function stop() {
exit(); }
echo "<br />Unu...";
echo "<br />Doi...";
stop();
echo "<br />Trei...";
?>
04.04.2016
71
copyright@www.adrian.runceanu.ro
04.04.2016
72
copyright@www.adrian.runceanu.ro
Bibliografie:
Adrian Runceanu, Mihaela Runceanu, Tehnologii si
aplicatii web ndrumar de laborator, Editura Academica
Brncui, Trgu-Jiu, 2009, ISBN 978-973-144-302-7
ntrebri?
04.04.2016
73