Funkcija je poimenovan del kode, ki ga lahko večkrat uporabimo. Z njo več ukazov združimo v smiselno celoto in jih nato po potrebi pokličemo na različnih mestih v programu.
PHP vsebuje veliko vgrajenih funkcij, poleg njih pa lahko pišemo tudi lastne funkcije. Uporaba funkcij izboljša preglednost kode, zmanjša podvajanje in olajša vzdrževanje programa.
Pomni: Funkcije uporabljamo zato, da isto kodo zapišemo samo enkrat, nato pa jo lahko večkrat uporabimo.
Osnovna pravila
- Funkcijo definiramo s ključno besedo
function. - Vsaka funkcija ima ime, lahko ima parametre in lahko vsebuje ukaze v telesu funkcije.
- Funkcijo izvedemo tako, da jo pokličemo z njenim imenom.
- Funkcija lahko nekaj izpiše ali pa vrne vrednost s stavkom
return. - Pri izbiri imena funkcije uporabljamo jasna in smiselna imena, ki opisujejo njeno nalogo.
Pozor: Če je ime funkcije nejasno ali nepovezano z njenim namenom, je koda težje berljiva in jo je težje vzdrževati.
Vgrajene funkcije v PHP
PHP vsebuje veliko vgrajenih funkcij, ki so razdeljene po različnih področjih uporabe. Nekatere so namenjene delu z nizi, druge z tabelami, datumi, datotekami, filtri ali matematiko. Ko poznamo osnovne skupine funkcij, lažje izberemo ustrezno rešitev za določen problem.
Funkcije za delo z nizi
| Funkcija | Opis |
|---|---|
strlen() |
vrne dolžino niza |
strtoupper() |
pretvori niz v velike črke |
strtolower() |
pretvori niz v male črke |
trim() |
odstrani presledke in druge znake z začetka in konca niza |
explode() |
razdeli niz na več delov in vrne tabelo |
implode() |
združi elemente tabele v niz |
Funkcije za delo s tabelami
| Funkcija | Opis |
|---|---|
count() |
prešteje elemente tabele |
sort() |
uredi elemente tabele naraščajoče |
rsort() |
uredi elemente tabele padajoče |
array_push() |
doda enega ali več elementov na konec tabele |
array_pop() |
odstrani zadnji element tabele |
array_merge() |
združi dve ali več tabel v eno tabelo |
Funkcije za delo z datumi in časom
| Funkcija | Opis |
|---|---|
date() |
oblikuje datum in čas v izbran zapis |
time() |
vrne trenutni čas v obliki časovnega žiga |
mktime() |
ustvari časovni žig iz podanih vrednosti datuma in časa |
strtotime() |
pretvori besedilni opis datuma ali časa v časovni žig |
Funkcije za matematične izračune
| Funkcija | Opis |
|---|---|
abs() |
vrne absolutno vrednost števila |
round() |
zaokroži število |
ceil() |
zaokroži število navzgor |
floor() |
zaokroži število navzdol |
max() |
vrne največjo vrednost |
min() |
vrne najmanjšo vrednost |
Funkcije za delo z datotekami
| Funkcija | Opis |
|---|---|
file_exists() |
preveri, ali datoteka obstaja |
file_get_contents() |
prebere vsebino datoteke v niz |
file_put_contents() |
zapiše vsebino v datoteko |
fopen() |
odpre datoteko za branje ali pisanje |
fclose() |
zapre odprto datoteko |
unlink() |
izbriše datoteko |
Funkcije za filtriranje in preverjanje podatkov
| Funkcija | Opis |
|---|---|
filter_var() |
filtrira ali preveri posamezno vrednost |
filter_input() |
prebere in filtrira vhodni podatek |
htmlspecialchars() |
pretvori posebne znake v entitete HTML |
strip_tags() |
odstrani oznake HTML in PHP iz niza |
is_numeric() |
preveri, ali je vrednost številska |
empty() |
preveri, ali je vrednost prazna |
Pomni: Vgrajene funkcije v PHP so razdeljene po področjih. Če poznamo osnovne skupine funkcij, hitreje najdemo ustrezno rešitev za delo z nizi, tabelami, datumi, datotekami ali vhodnimi podatki.
Definiranje funkcije
Funkcijo definiramo s ključno besedo function. Za njo zapišemo ime funkcije, seznam parametrov v oklepajih in telo funkcije v zavitih oklepajih.
function nekaFunkcija($argument1, $argument2) {
// koda funkcije
}
V običajnih primerih lahko funkcijo v PHP pokličemo tudi pred mestom, kjer je zapisana v kodi, vendar je zaradi preglednosti pogosto smiselno, da so definicije funkcij zapisane na urejen in predvidljiv način.
Pomni: Funkcija je najprej definirana, nato pa jo v programu pokličemo, kadar jo potrebujemo.
<?php
function echoBR($txt) {
echo $txt . "<br>";
}
echoBR("To je prva vrstica.");
echoBR("To je druga vrstica.");
echoBR("To je tretja vrstica.");
?>
To je druga vrstica.
To je tretja vrstica.
V prikazanem primeru funkcija prejme besedilo kot argument in ga izpiše v novo vrstico.
Funkcija brez parametrov
Nekatere funkcije delujejo brez parametrov. Takšne funkcije izvedemo preprosto s klicem njihovega imena in oklepajev.
<?php
function izpisiPozdrav() {
echo "Pozdrav iz funkcije!<br>";
}
izpisiPozdrav();
?>
Pomni: Funkcijo brez parametrov uporabimo takrat, ko za svoje delovanje ne potrebuje dodatnih vhodnih podatkov.
Funkcija s parametrom
Parameter je spremenljivka v definiciji funkcije. Ko funkcijo pokličemo, ji posredujemo argument. Tako lahko ista funkcija deluje z različnimi vrednostmi.
<?php
function izpisiIme($ime) {
echo "Moje ime je " . $ime . "!<br>";
}
izpisiIme("Janez");
?>
Pomni: Parameter je zapisan v definiciji funkcije, argument pa je konkretna vrednost, ki jo funkciji posredujemo ob klicu.
Funkcije, ki vrnejo vrednost
Funkcija lahko samo nekaj izpiše, lahko pa tudi vrne vrednost s stavkom return. Ko PHP izvede return, se izvajanje funkcije konča, klic funkcije pa dobi vrnjeno vrednost.
function sestevanje($prvoStevilo, $drugoStevilo) {
$rezultat = $prvoStevilo + $drugoStevilo;
return $rezultat;
}
echo sestevanje(3, 5);
<?php
function sestej($x, $y) {
$vsota = $x + $y;
return $vsota;
}
echo "3 + 12 = " . sestej(3, 12);
?>
Pozor: Funkcija, ki uporablja return, vrednost vrne klicu funkcije. To ni isto kot neposreden izpis z ukazom echo.
Primerjava: echo ali return
| Lastnost | Izpis z echo |
Vračanje z return |
|---|---|---|
| Namen | neposreden izpis rezultata | vrnitev vrednosti v nadaljnjo obdelavo |
| Uporaba | kadar želimo rezultat takoj prikazati | kadar želimo rezultat shraniti, računati ali uporabiti drugje |
| Nadaljnja obdelava | omejena | enostavna |
Pomni: Če želimo rezultat samo prikazati, pogosto uporabimo echo. Če želimo rezultat še naprej uporabljati v programu, je primernejši return.
Sodobnejši zapis s tipi
V sodobnem PHP lahko parametrom in povratni vrednosti določimo tudi tip. Tako je koda pogosto bolj jasna, pregledna in varnejša.
<?php
function sestejStevili(int $x, int $y): int {
return $x + $y;
}
echo sestejStevili(4, 6);
?>
Tak zapis pove, da funkcija pričakuje dve celi števili in vrne celo število.
Pomni: Tipske deklaracije izboljšajo berljivost kode in pomagajo pri pravilnejši uporabi funkcij.
Priporočila
- Funkcije naj imajo jasna in opisna imena.
- Vsaka funkcija naj opravlja eno jasno določeno nalogo.
- Pri večkrat uporabljeni kodi je smiselno uporabiti funkcijo namesto ponavljanja istih ukazov.
- Kadar rezultat potrebujemo tudi drugje v programu, je priporočljivo uporabiti
return. - Pri sodobni kodi je koristno uporabljati tudi tipske deklaracije.
- Pri reševanju pogostih nalog najprej preverimo, ali PHP že vsebuje ustrezno vgrajeno funkcijo.
Pozor: Predolga funkcija, ki opravlja več različnih nalog, zmanjša preglednost programa in oteži odpravljanje napak.
Pogoste napake
- Funkcija nima jasnega in smiselnega imena.
- V funkciji so združene naloge, ki bi jih bilo primerneje razdeliti v več manjših funkcij.
- Zamenjana sta pojma parameter in argument.
- Pričakuje se vrnjena vrednost, čeprav funkcija uporablja samo
echo. - Funkcija ne vrne vrednosti, čeprav jo nadaljnja koda potrebuje za obdelavo.
- Pri klicu funkcije niso posredovani ustrezni argumenti.
- V kodi se ponavljajo enaki ukazi, namesto da bi bili združeni v funkcijo.
- Za pogosto nalogo se piše lastna rešitev, čeprav PHP že vsebuje ustrezno vgrajeno funkcijo.
Pozor: Napačna izbira med echo in return je pogost razlog, da program ne daje pričakovanih rezultatov.
Sklep
Funkcije so eden temeljnih gradnikov programiranja v PHP. Omogočajo bolj pregledno, krajšo in lažje vzdrževano kodo. Pri njihovi uporabi je pomembno, da razumemo razliko med parametri in argumenti, med izpisom in vračanjem vrednosti ter da funkcije načrtujemo jasno in smiselno. Poleg lastnih funkcij pa je koristno poznati tudi osnovne skupine vgrajenih funkcij, saj te pogosto že ponujajo učinkovito rešitev za vsakdanje programske naloge.