PHP ponuja širok nabor funkcij, ki jih lahko uporabimo za različne naloge. Tukaj bom predstavil nekaj primerov funkcij, ki jih lahko uporabimo. Funkcijo lahko definiramo z uporabo ključne besede function, čemur sledi ime funkcije, seznam parametrov v oklepajih in telo funkcije v zavitih oklepajih. Lahko definiramo parametre s privzetimi vrednostmi, ki bodo uporabljeni, če argumenti niso podani. Vsake funkcija lahko sprejme več parametrov. Lahko jo definiramo, da sprejme argumente po referenci. Vse to bomo našli v primerih, ki sledijo.
Resnično moč PHP izvira iz njegovih funkcij. PHP ima več kot 1000 vgrajenih funkcij, poleg tega pa lahko ustvarimo tudi lastne funkcije po meri.
Najprej si oglejmo preprost primer funkcije, ki sprejme dva parametra in vrne njuno vsoto.
<?php echo "\nPrvi primer:\n"; function matematika($a, $b) { return $a + $b; } $a = 5; $b = 7; $rezultat = matematika($a, $b); echo "Vsota števil $a in $b je: " . $rezultat; echo "\n\nDrugi primer:\n"; function sestevanje($a, $b) { return $a + $b; } $rezultat = sestevanje(5, 7); echo "Vsota je: " . $rezultat; echo "\n";
C:\xampp\php\php.exe -c C:\xampp\php\php.ini "C:\Users\" Prvi primer: Vsota števil 5 in 7 je: 12 Drugi primer: Vsota je: 12 Process finished with exit code 0
Funkcije imajo lahko tudi privzete vrednosti za parametre.
<?php echo "\nPrvi primer:\n"; function pozdrav($ime = "PHP") { return "Dobrodošli v moji " . $ime . " vadnici!"; } echo pozdrav(); echo "\n\nDrugi primer:\n"; function pozdravi($ime = "") { return "Pozdravljen, " . $ime . "."; } echo pozdravi("Borut"); echo "\n\nTretji primer:\n"; function pozdravSkupaj($ime = "v moji vadnici") { return "Pozdravljen, " . $ime . "."; } echo pozdravSkupaj() . "\n"; echo pozdravSkupaj("Borut"); echo "\n\nČetrti primer:\n"; function pozdraviti($ime = "", $vadnica = "PHP") { if ($ime === "") { return "Dobrodošli v moji " . $vadnica . " vadnici!"; } else { return "Dobrodošel " . $ime . ", v moji " . $vadnica . " vadnici!"; } } echo pozdraviti() . "\n"; echo pozdraviti("Borut"); echo "\n";
C:\xampp\php\php.exe -c C:\xampp\php\php.ini "C:\Users\" Prvi primer: Dobrodošli v moji PHP vadnici! Drugi primer: Pozdravljen, Borut. Tretji primer: Pozdravljen, v moji vadnici. Pozdravljen, Borut. Četrti primer: Dobrodošli v moji PHP vadnici! Dobrodošel Borut, v moji PHP vadnici! Process finished with exit code 0
V PHP-ju lahko ustvarimo funkcijo, ki sprejme spremenljivo število argumentov z uporabo funkcije func_get_args ali pa s sintakso (...).
<?php echo "\nPrvi primer:\n"; function sestejVse(...$stevila) { return array_sum($stevila); } echo "Sešteje vsa vpisana števila, katerih rezultat je " . sestejVse(1, 2, 3, 4, 5) . "\n";
C:\xampp\php\php.exe -c C:\xampp\php\php.ini "C:\Users\" Prvi primer: Sešteje vsa vpisana števila, katerih rezultat je 15 Process finished with exit code 0
Uporaba referenc omogoča funkcijam, da spremenijo vrednosti zunanjih spremenljivk.
<?php echo "\n"; function a(&$stevilo) { $stevilo++; } $mojaVrednost = 5; a($mojaVrednost); echo "Spremenjena vrednost: " . $mojaVrednost . "\n"; function b(&$spremeni) { $spremeni = "PHP vadnica"; } $mojaVrednost = 5; b($mojaVrednost); echo "Spremenjena vrednost: " . $mojaVrednost . "\n";
C:\xampp\php\php.exe -c C:\xampp\php\php.ini "C:\Users\" Spremenjena vrednost: 6 Spremenjena vrednost: PHP vadnica Process finished with exit code 0
Rekurzivne funkcije pokličejo same sebe.
<?php echo "\n"; function rekurzija($n) { if ($n === 0) { return 1; } else { return $n * rekurzija($n - 1); } } echo rekurzija(5) . "\n";
C:\xampp\php\php.exe -c C:\xampp\php\php.ini "C:\Users\" 120 Process finished with exit code 0
Anonimne funkcije (ali funkcije brez imen) so uporabne za ustvarjanje funkcij, ki jih potrebujete samo enkrat.
<?php echo "\nPrvi primer:\n"; $a = function($n) { return $n + 1; }; echo $a(5); echo "\n\nDrugi primer:\n"; $a = function($n) { return $n; }; echo $a("Dobrodošli v moji PHP vadnici!") . "\n";
C:\xampp\php\php.exe -c C:\xampp\php\php.ini "C:\Users\" Prvi primer: 6 Drugi primer: Dobrodošli v moji PHP vadnici! Process finished with exit code 0