Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




FUNCTII IN PHP

php


FUNCTII IN PHP

Functiile sunt portiuni de cod definite pentru a executa anumite sarcini.

Functiile pot fi chemate de mai multe ori pe parcursul executiei unui program.

Ele primesc argumente (valori de intrare) cu ajutorul carora executa cateva operatii dupa care returneaza o valoare. Functiile transfera orice valoare primita ca argument in variabile temporare numite parametrii ce pot fi folositi numai pe parcursul executiei functiei.



Definire :

function <nume_functie> (<parametrii>)

Ex:

function tva($lei)

O apelare de forma :

echo tva(100000);

va produce rezultatul 119000.

Pentru returnarea unei valori am folosit cuvantul cheie return.

Functia poate fi apelata si fara argumente :

function tva()

Daca dorim sa transmitem un numar mai mare de parametrii catre functie, atunci ii putem delimita cu virgula.

function suma($a,$b)

O apelare de forma : echo suma(5,10);

va produce inevitabil rezultatul 15.






Exemplu practic (functii si switch):

<?

$valuta="euro";

$suma=500;

$curseuro=39890;

$cursusd=32800;

switch ($valuta)

function calculeaza ($suma,$curs)

?>

Putem observa cu usurinta cum am folosit functia de doua ori, adaptand valorile de intrare dupa caz (euro sau usd).

Trimiterea variabilelor

prin valoare :

<?

$a=5;$b=10;

suma($a,$b);

function suma($a,$b)

echo "Valoarea lui a dupa rularea functiei ".$a;

?>

Putem observa ca a ia pe rand valoarea 5 (in programul principal), ulterior se transmite functiei, care copiaza pe o stiva valoarea lui a dupa care in incrementeaza cu valoarea lui b (si ea copiata intr-o variabila temporara).

La iesirea din functie, a si b din interiorul functiei se distrug, inafara ei variabilele a si b ramanand nemodificate.

Prin urmare, pe ecran vor fi afisate urmatoarele:

Valoarea lui a in cadrul functiei 15

Valoarea lui a dupa rularea functiei 5

prin referinta

A doua metoda de a trimite variabile unei functii este prin referinta, mod ce permite functiei sa modifice valoarea unei variabile, inclusiv inafara functiei.

Pentru a indica trimiterea prin referinta, se adauga in fata variabilei un ampersand.

<?

$a=5;$b=10;

suma($a,$b);

function suma(&$a,$b)

echo "Valoarea lui a dupa rularea functiei ".$a;

?>

Vor fi afisate urmatoarele :

Valoarea lui a in cadrul functiei 15

Valoarea lui a dupa rularea functiei 15

Stabilirea valorilor implicite

Sunt situatii cand unul sau mai multi parametrii nu primesc intializarea cu argumente. Ex:

<?

$a=5;$b=10;

suma($a);

function suma($a,$b)

?>

Va produce ca rezultat : Valoarea lui a in cadrul functiei 5


Daca totusi dorim ca un parametru sa ia anumita valoare chiar daca nu este primit in functie ca argument, folosim descrierea functiei dupa cum urmeaza:

<?

$a=5;$b=15;

suma($a);

function suma($a,$b=10)

?>

Rezultatul va fi : Valoarea lui a in cadrul functiei 15

O apelare de forma : suma($a,$b) va produce in programul de mai sus rezultatul :

Valoarea lui a in cadrul functiei 20.

Ordinea initializarii parametrilor in functii este de la stanga la dreapta, deci trebuie sa punem intai parametrii ce ii trimitem ca argumente la apelarea functiei, dupa care, la final parametrii cu valoare implicita.

Un astfel de program :

<?

$a=5;$b=15;

suma(,$b);

function suma($a=5,$b)

?>

desi are setat parametrul a cu valoare implicita, va genera o eroare.

Solutia este inversarea ordinii, lasand parametrii optionali la sfarsit.

In functie de versiunea de PHP pe care rulati puteti face o apelare a functiei cu mai putine argumente decat definitia, chiar daca nu sunt asignate valori implicite parametrilor. Ex :


<?

$a=5;$b=15;

suma($a);

function suma($a,$b)

?>


va returna Valoarea lui a in cadrul functiei 5

cu cel mult un mesaj de atentionare (warning).



Un minus al trimiterii parametrilor prin referinta este urmatorul :

<?

suma(5,10);

function suma(&$a,$b)

?>

Aparent programul nu prezinta nici o eroare.

Totusi, la o examinare mai atenta se poate vedea ca parametrul a este initializat prin referinta fata de un intreg (nu o variabila).

Prin urmare modificarea lui a ar echivala cu modificarea intregului 5, nu al continutului unei variabile (similar cu 5=5+10).

Programul va prezenta eroarea "Only variables can be passed by reference".

Locul variabilelor in program

Variabilele din interiorul functiilor nu se pot vedea in exteriorul lor (se distrug la terminarea functiei) decat daca sunt transmise ca referinta.

Variabilele pot fi :

globale

locale

Variabilele globale sunt variabilele ce isi mentin existenta pe parcursul executiei intregului program, in timp ce variabilele locale sunt variabilele din interiorul functiilor ce isi inceteaza existenta dupa terminarea functiei.

Ex :

<?

$salariu=800;

$taxe=0.25;

calculeaza($salariu,$taxe);

function calculeaza ($salariu,$taxe)

//daca in schimb afisam in exterior

echo "Salariul net este : ".$salariu_net;

//se va afisa doar string -ul Salariul net este :

?>

Ex 2:


<?

$salariu=800;

$taxe=0.25;

calculeaza($salariu,$taxe);

function calculeaza ($salariu,$taxe)

//daca in schimb afisam in exterior

echo "Salariul net este : ".$salariu;

//se va afisa Salariul net este : 800

?>

Daca dorim o vizualizare globala a variabilelor locale functiei avem 2 posibilitati :

le trimitem ca referinta

le asociem parametrul global inainte de a opera cu variabilele sau folosind vectorul $GLOBALS[]

Ex 3:


<?

$salariu=800;

$taxe=0.25;

calculeaza($taxe);

function calculeaza ($taxe)

//daca afisam in exterior

echo "Salariul net este : ".$salariu;

//se va afisa Salariul net este : 600

//pentru ca $salariu este tratata ca o variabila globala

?>

Similar se poate folosi vectorul $GLOBALS[];

Ex 4:

<?

$salariu=800;

$taxe=0.25;

calculeaza($taxe);

function calculeaza ($taxe)

//daca afisam in exterior

echo "Salariul net este : ".$salariu;

//se va afisa Salariul net este : 600

//pentru ca $salariu este tratata ca o variabila globala

?>






Variabilele statice - sunt folosite atunci cand este necesar ca acestea sa existe pe parcursul mai multor apelari ale functiilor, fara a mai fi necesara o reatribuire.

Ex 1:

<?

function vizitatori()

//un apel de forma

echo vizitatori();

//va afisa 1

//la urmatorul apel

echo vizitatori();

//se va afisa tot 1

?>

Este destul ne neplacut ca pe parcursul unei numaratori sa aveti variabile ce se reseteaza la fiecare apelare a functiei. Pentru a asigura persistenta variabilei, se foloseste cuvantul cheie static.

Ex 2:

<?

function vizitatori()

//un apel de forma

echo vizitatori();

//va afisa 1

//la urmatorul apel

echo vizitatori();

//se va afisa 2

?>


Document Info


Accesari: 2444
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )