Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Functii

php



+ Font mai mare | - Font mai mic



Functii

O functie este un bloc de cod care are un nume si care executa anumite operatii, putand sa actioneze diferit in functie de valorile sale de intrare (numite parametri), si putand sa returneze o singura valoare.

Functiile economisesc timp de compilare - indiferent de cate ori sunt apelate, functiile sunt compilate o singura date. Ele ajuta si la imbunatatirea productivitatii, permitand repararea erorilor intr-un singur loc.  De asemenea usureaza citirea codului, izoland blocurile de instructiuni care executa operatii specifice.



Acest subcapitol introduce sintaxa de apelare si definire a functiilor si aduce in discutie managementul variabilelor in functii. De asemenea acopera subiectul functiilor variabile si anonime.

Apelarea unei functii

Functiile dintr-un program PHP pot fi predefinite (sau activate prin apartenenta la o extensie incarcata de PHP) sau definite de utilizator. Indiferent de sursa provenientei lor, toate functiile sunt evaluate in acelasi fel:

$valoare = nume+funtie( [ parametru, ] );

Numarul de parametri pe care o functie ii cere la executie, difera de la functie la functie (si poate diferi si in cadrul aceleiasi functii). Parametrii oferiti functiei pot fi orice expresii valide si trebuie sa fie intr-o ordine specificata la crearea functiei.

Documentatia functiei ne poate spune ce parametri sunt asteptati de acea functie, si ce valori ne putem astepta sa primim. 

Iata cateva exemple de functii:

// strlen( ) este o functie predefinita care returneaza lungimea unui sir de caractere
$length = strlen('PHP'); // $length este 3

// sin() si asin( ) sunt functiile matematice sin si arcsin
$result = sin(asin(1)); // $result reprezinta sin(arcsin(1)), adica 1.0

// unlink( ) sterge un fisier
$result = unlink('functions.txt'); // false daca stergerea a esuat

In primul exemplu, trimitem un argument (PHP) catre functia strlen() care ne returneaza numarul de caractere din sirul de caratere trimis ca parametru. In acest caz returneaza 3, care este valoarea asignata variabilei $lenght. Acesta este cel mai simplu si comun mod de a folosi o functie.

Cel de-al doilea exemplu paseaza rezultatul lui asin(1), functiei sin(). Cum functiile sin si arcsine sunt reflexive, vom primi aceeasi valoare cu valoarea introdusa.

In exemplul final, trimitem numele unui fisier catre functia unlink(), care va incerca stergerea fisierului respectiv. Ca si alte functii, aceasta va returna valoarea false in cazul unui esec. Acest lucru ne permite folosirea functiei de scurt-circuitare die():

$result = unlink('functions.txt') or die('Operatie esuata!');

Functia unlink, spre deosebire de celelalte exemple de mai sus, afecteaza altceva decat parametrul primit. In acest caz, sterge un fisier din sistem. Toate efectele unor astfel de functii trebuie bine documentate.

PHP are foarte multe functii deja definite, care pot fi folosite in programele noastre. Totul, de la acces la baze de date pana la crearea de grafica poate fi gasit in librariile (extensiile) PHP.

Definirea functiilor

Pentru a defini o functie, trebuie sa folosim sintaxa urmatoare:

function [&] nume parametru [, ] ] )

Lista de instructiuni poate include cod HTML. Pot fi declarate functii PHP care sa nu contina nici o linie de cod PHP. De exemplu, functia coloana() - definita mai jos - ofera o modalitate de a include cod HTML ce va fi necesar in intreaga noastra pagina:



<? function coloana( ) ?>

Numele functiei poate fi un sir de caractere care incepe cu o litera, sau cu caracterul underscore ( _ ), urmat(a) de zero sau mai multe litere sau cifre. Numele de functie sunt case-insensitive, adica la chemarea functiei sin(1), aceasta produce acelasi efect ca SIN(1) sau Sin(1),  pentru ca toate numele se refera la aceasi functie.

In mod normal, functiile returneaza o valoare. Pentru a returna o valoare dintr-o functie, folosim instructiunea return. Cand in timpul executiei este intalnita o instructiune return, suntem "aruncati" in programul apelant si rezultatul evaluat al expresiei va fi returnat.

Daca functia este definita cu caracterul optional ampersand (&) inaintea numelui sau, functia returneaza o referinta catre datele returnate, in loc de o copie a datelor.

In continuare vom construi o functie simpla, care primeste doua siruri de caractere, le concateneaza si apoi returneaza rezultatul.


function strcat($left, $right)

Functia primeste doua argumente, $left si $right. Folosind operatorul de concatenare, functia creaza un string concatenat, in variabila $string_combinat. Apoi, returneaza valoarea acestuia din urma.

Pentru ca instructiunea return poate accepta orice expresie, oricat de complexa, putem simplifica programul astfel:

function strcat($left, $right)

Daca inseram acest cod intr-o pagina PHP, putem sa apelam functia de oriunde din pagina:

<?php
function strcat($left, $right)

$prima = 'Aceasta este ';
$a_doua = ' o propozitie completa!';

echo strcat($prima, $a_doua);
?>

Cand pagina este afisata, intreaga propozitie va fi afisata.

Functia urmatoare primeste o valoare intreaga, o dubleaza si returneaza rezultatul:

function doubler($valoare)

Odata ce functia este definita, o putem folosi oriunde, in pagina:

<?= 'O perche de 13 este ' . doubler(13); ?>

Functiile pot fi declarate una in alta, dar cu efect limitat. Declararile imbricate nu permit functiei din interior sa acceseze parametrii functiei exterioare si nu poate fi apelata decat dupa ce a fost apelata functia mama.


function mama ($a)
echo '$a, bine ai venit ';

mama('salut');
fiica('Stefan');

//rezultatul va fi afisarea textului "salut mai Stefan, bine ai venit "





Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1107
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved