Funcții în PHP
O funcție în PHP este un bloc de cod reutilizabil, care realizează o anumită sarcină. Funcțiile ajută la organizarea codului, evitarea repetării, și fac programele mai ușor de întreținut. O funcție poate primi date de intrare (parametri) și poate returna un rezultat.
Definirea unei funcții
O funcție se definește folosind cuvântul cheie function, urmat de numele funcției și de paranteze.
Codul pe care îl execută funcția se pune între acolade { ... }.
Exemplu simplu
<?php
// Definim o funcție simplă care afișează un mesaj
function salut() {
echo "Salut, lume!";
}
// Apelăm funcția
salut(); // afișează: Salut, lume!
?>
Explicație pas cu pas
function salut()- declară o funcție numită salut.- Codul dintre acolade (
{ ... }) se execută doar atunci când apelăm funcția. salut();- apelul funcției, care execută codul din interior.
De ce să folosim funcții?
Funcțiile ne permit să:
- Reutilizăm codul fără să-l rescriem.
- Împărțim programele în module mai mici și ușor de citit.
- Organizăm codul în mod logic, ceea ce ajută la întreținere și debugging.
- Returnăm rezultate pe care le putem folosi ulterior în program.
Parametri și valori returnate în funcții
Parametrii permit funcțiilor să primească date de la apelant. Aceștia sunt definiți între parantezele funcției.
O funcție poate, de asemenea, să returneze un rezultat folosind cuvântul cheie return.
Exemplu simplu cu parametri
<?php
// Funcție care primește numele și salută persoana respectivă
function salutPersoana($nume) {
echo "Salut, $nume!";
}
// Apelăm funcția cu diferite valori
salutPersoana("Maria"); // Salut, Maria!
salutPersoana("Ioan"); // Salut, Ioan!
?>
Exemplu cu return
<?php
// Funcție care adună două numere și returnează rezultatul
function aduna($a, $b) {
return $a + $b;
}
$rezultat = aduna(5, 10);
echo "Rezultatul este: $rezultat"; // Rezultatul este: 15
?>
Explicație pas cu pas
- În primul exemplu, funcția
salutPersoanaprimește un parametru$numeși îl folosește în mesaj. - În al doilea exemplu, funcția
adunaprimește doi parametri, îi adună și returnează rezultatul. Acesta poate fi stocat într-o variabilă sau folosit direct. returnoprește execuția funcției și trimite valoarea înapoi la apelant.
De ce să folosim parametri și return
Parametrii fac funcțiile flexibile, astfel încât să putem folosi aceeași funcție pentru date diferite. Valorile returnate ne permit să lucrăm cu rezultatele și să le folosim în calcule, condiții sau afișări ulterioare.
Funcții predefinite în PHP
PHP oferă o mulțime de funcții predefinite care te ajută să faci lucruri comune fără să scrii cod de la zero. Aceste funcții sunt împărțite pe categorii: manipulare string-uri, array-uri, date, matematică, fișiere și multe altele.
Exemple utile pentru string-uri
<?php
$text = "Salut, lume!";
// Aflăm lungimea unui string
echo strlen($text); // 12
// Transformăm textul în majuscule
echo strtoupper($text); // SALUT, LUME!
// Transformăm textul în litere mici
echo strtolower($text); // salut, lume!
?>
Exemple utile pentru array-uri
<?php
$fructe = ["mere", "pere"];
// Adăugăm un element la sfârșitul array-ului
array_push($fructe, "banane");
print_r($fructe); // Array ( [0] => mere [1] => pere [2] => banane )
// Eliminăm ultimul element
$ultimul = array_pop($fructe);
echo $ultimul; // banane
?>
Exemple pentru date și ore
<?php
// Obținem data curentă
echo date("d-m-Y"); // ex: 01-09-2025
// Obținem ora curentă
echo date("H:i:s"); // ex: 17:45:30
?>
Explicații și bune practici
- Funcțiile predefinite te scutesc de rescrierea codului și fac aplicațiile mai rapide.
- Este important să verifici documentația pentru parametrii și valorile returnate, deoarece unele funcții pot modifica datele direct sau pot returna o valoare.
- Combinația între funcțiile predefinite și funcțiile tale personalizate permite crearea de aplicații puternice și modulare.
Funcții anonime și arrow functions în PHP
O funcție anonimă este o funcție fără nume, care poate fi stocată într-o variabilă sau transmisă ca parametru altor funcții. Arrow functions sunt o versiune scurtă introdusă în PHP 7.4, mai concisă și mai lizibilă, utilă mai ales pentru funcții scurte.
Exemplu de funcție anonimă
<?php
$salut = function($nume) {
return "Bună, $nume!";
};
echo $salut("Maria"); // Bună, Maria!
?>
Exemplu de arrow function
<?php
$adunare = fn($a, $b) => $a + $b;
echo $adunare(5, 7); // 12
?>
Când folosim funcții anonime sau arrow
- În callback-uri pentru array-uri sau funcții predefinite (ex:
array_map,array_filter). - Când vrem să scriem funcții scurte și concise fără să creăm funcții globale.
- Arrow functions sunt utile când funcția returnează o singură expresie și vrei cod mai clar.
Variabile locale, globale și static în PHP
Variabile locale
O variabilă declarată în interiorul unei funcții este locală. Ea există doar în acel context și nu poate fi accesată în afara funcției.
Exemplu variabilă locală
<?php
function salut() {
$mesaj = "Salut, lume!";
echo $mesaj;
}
salut(); // Afișează: Salut, lume!
echo $mesaj; // Eroare: variabila nu este definită în afara funcției
?>
Variabile globale
O variabilă definită în afara funcțiilor este globală. Pentru a o folosi în interiorul unei funcții, putem
folosi cuvântul cheie global sau superglobalul $GLOBALS.
Exemplu variabilă globală
<?php
$mesajGlobal = "Salut din afara funcției!";
function afiseazaGlobal() {
global $mesajGlobal;
echo $mesajGlobal;
}
afiseazaGlobal(); // Afișează: Salut din afara funcției!
?>
Variabile statice
O variabilă statică își păstrează valoarea între apelurile funcției. Aceasta nu se resetează la fiecare execuție a funcției, spre deosebire de variabilele locale obișnuite.
Exemplu variabilă statică
<?php
function contorStatic() {
static $nrApeluri = 0;
$nrApeluri++;
echo "Funcția a fost apelată de $nrApeluri ori <br>";
}
contorStatic(); // Funcția a fost apelată de 1 ori
contorStatic(); // Funcția a fost apelată de 2 ori
contorStatic(); // Funcția a fost apelată de 3 ori
?>
Când folosim variabile globale și statice?
- Global: când ai nevoie să accesezi o valoare definită în afara funcției.
- Static: când vrei să păstrezi starea unei variabile între apelurile funcției fără a folosi o variabilă globală.
Exemplu practic: funcție pentru calcularea mediei notelor
Vom crea o funcție care primește un array de note și returnează media acestora. Funcția va folosi parametri și return.
Exemplu funcție pentru calcularea mediei notelor
<?php
function calculeazaMedia($note) {
$suma = array_sum($note); // însumăm toate notele
$numarNote = count($note); // numărul de note
if ($numarNote === 0) {
return 0; // evităm împărțirea la zero
}
return $suma / $numarNote; // calculăm media
}
// Testăm funcția
$noteElev = [8, 9.5, 7, 10];
$media = calculeazaMedia($noteElev);
echo "Media elevului este: $media";
?>
<?php
function calculeazaMedia($note) {
$suma = array_sum($note); // însumăm toate notele
$numarNote = count($note); // numărul de note
if ($numarNote === 0) {
return 0; // evităm împărțirea la zero
}
return $suma / $numarNote; // calculăm media
}
// Testăm funcția
$noteElev = [8, 9.5, 7, 10];
$media = calculeazaMedia($noteElev);
echo "Media elevului este: $media";
?>
Explicație pas cu pas
- Parametru: $note - array-ul de note transmis funcției.
- array_sum: însumează toate elementele array-ului.
- count: determină câte elemente sunt în array.
- Verificăm dacă numărul de note este 0 pentru a evita împărțirea la zero.
- Returnăm media și afișăm rezultatul folosind
echo.
Extindere practică
Putem modifica funcția pentru a primi note de la utilizator prin formular și a returna media cu două zecimale:
<?php
$noteElev = [8, 9.5, 7, 10];
$media = calculeazaMedia($noteElev);
echo "Media elevului este: " . number_format($media, 2);
?>
🧠 Quiz - Funcții în PHP
