|
Functii in PHP
Daca ai parcurs primele capitole ale acestui curs, ar trebui sa stii destul de mult PHP astfel incat sa poti crea scripturi simple proprii. Totusi, programele prezentate pana la acest punct sunt procedurale sau liniare, ceea ce inseamna ca instructiunile sunt executate secvential, una dupa alta.
Pe masura ce scripturile tale PHP vor deveni din ce in ce mai complexe, este doar o chestiune de timp pana ce vei intampina probleme datorita stilului de programare secvential. In acest tutorial, poti afla o noua metoda de a-ti organiza programul PHP, in care acesta nu este executat liniar, ci modular, prin salturi de la o bucata de cod la alta. Acest tip de programare se bazeaza in mod special pe o structura care poarta numele de „functie” („function”), care este creata o singura data, dar poate fi executata de mai multe ori. O functie primeste argumente (parametrii) si returneaza o valoare.
Definirea unei functii
O functie poate fii definita in mod clasic ca: „o lista de instructiuni, grupate ca o singura entitate ce poate fi apelata prin intermediul unui nume”. Mai simplu, o functie reprezinta un set de instructiuni ce indeplinesc o anumita sarcina, si care pot si apelate si executate din orice punct al scriptului tau PHP.
In PHP, fiecare functie reprezinta un bloc de cod distinct. Codul unei functii este propriu acelei functii si nu poate fi accesat de nici o alta instructiune continuta intr-o alta functie, cu exceptia cazului in care este apelata functia. Codul care reprezinta corpul unei functii este ascuns fata de restul programului si, cu exceptia cazului in care foloseste date sau variabile globale, nu poate afecta si nu poate fi afectat de catre alte componente ale programului. In PHP, toate functiile au acelasi nivel al domeniului de actiune, adica nu se poate defini o functie in interiorul unei functii.
Orice limbaj de programare are un set de functii predefinite (built-in), pe baza carora un programator isi poate defini propriile functii.
Functiile sunt utile pentru ca:
1. functiile definite de catre utilizator permit separarea codului in subsectiuni mai usor de identificat, inteles si corectat.
2. cu ajutorul functiilor, poti crea un program modular, ce permite reutilizarea codului.
3. modificarile sunt mai usor de implementat, deoarece corpul unei functii este modificat o singura data (in definitia functiei), chiar daca in programul principal, el este apelat de mai multe ori.
Crearea unei functii
Iata un exemplu pentru a intelege cum opereaza o functie:
<?php
function myStandardResponse() {
echo "Get lost, jerk!<br /><br />";
}
echo "Hey lady, can you spare a dime? <br />";
myStandardResponse();
echo "Can you handle Joe's workload, in addition to
your own, while he's in Tahiti for a month? You'll
probably need to come in early and work till midnight,
but we are confident you can handle it. Oh, and we
can't pay you extra because of budgetary constraints...<br />";
myStandardResponse();
echo "Hi, haven't I seen you somewhere before?<br />";
myStandardResponse();
?>
Codul de mai sus va afisa:
Hey lady, can you spare a dime?
Get lost, jerk!
Can you handle Joe's workload, in addition to your own, while he's in Tahiti for a month?
You'll probably need to come in early and work till midnight, but we are confident you can
handle it. Oh, and we can't pay you extra because of budgetary constraints...
Get lost, jerk!
Hi, haven't I seen you somewhere before?
Get lost, jerk!
Primul lucru pe care scriptul de mai sus in face este sa defineasca o functie, utilizand cuvantul cheie function, urmat de numele functiei – myStandardResponse(). Declaratiile care formeaza corpul functiei sunt plasate intre acolade, ele putand contine instructiuni conditionale sau repetitive (bucle), apeluri catre alte functii PHP sau functii definite de catre utilizator.
Definirea unei functii rezolva doar pe jumatate problema, deoarece ea trebuie sa fie si apelata. In PHP si in alte multe limbaje de programare, apelul unei functii se realizeaza prin intermediul numelui ei, ca in exemplul de mai sus. Invocarea unei functii definite de catre utilizator este la fel cu apelarea unei functii PHP native (built-in), cum ar fi echo().
Formatul standard pentru o functie este urmatorul:
function numele_functiei (parametrii optionali ai functiei) {
instructiune 1...
instructiune 2...
.
.
.
instructiune n...
}
|