Funkci si můžeme představit jako úsek programu, který se má použít později. Funkci můžeme použít vždy tam, kde bychom opakovali stejný, nebo podobný kód. Funkce již znáte, používá je samo PHP a my si nyní ukážeme, jak vytvořit svojí vlastní.
Funkce se vytvářejí pomocí klíčového slova function, za kterým následuje název (identifikátor) funkce. Pro ten platí stejná pravidla jako pro název proměnných. Poté je blok příkazů (tělo funkce), které se po zavolání provedou. Jako příklad si ukážeme jednoduchou funkci Pozdrav, která na stránku vypíše pozdrav. Poté ji hned zavoláme
function Pozdrav() {
echo "<h1>Vítejte na mé stránce</h1>";
}Pozdrav();
Jak jste si mohli všimnout, za název funkce přibili kulaté závorky (Pozdrav()). Je to proto, že funkci se mohou předávat parametry. (Pokud funkce žádné parametry nemá, stejně se musí zadat!!!). Parametry jsou obyčejné proměnné, které se při zavolání naplní. Pro pochopení se ukážeme jednoduchou funkci VypisJmeno, která bude mít jeden parametr a ten (s úvodní větou) vypíše:
function VypisJmeno($jmeno) {
echo "Tvé jméno je: $jmeno.";
}VypisJmeno("Vojtěch Zicha");Pokud budete chtít použít více parametrů, jednoduše je oddělíte čárkami, jak demonstruje tento příklad:
function Secti($cislo1, $cislo2) {
echo "$cislo1 + $cislo2 = ".($cislo+$cislo2);
}Secti(2, 6);
Co když však nebudeme chtít výsledek funkce vypsat (jako v předchozích příkladech), ale třeba vložit do jiné proměnné. Tehdy se uplatní tzv. vrácená hodnota. Označuje se klíčovým slovem return. Náš horní příklad by pak vypadal takto:
function SectiAVrat($cislo1, $cislo2) {
return $cislo+$cislo2;
}$vysledek = SectiAVrat(2, 6);
Příkazů return můžeme použít i více, ale po jeho prvním použití funkce končí.
Co když chceme třeba vytvořit funkci pro počítání mocnin. Mohla by vypadat nějak takhle:
function Umocni($cislo, $exponent) {
$vysledek = $cislo;
for($i=1;$i>$exponent;$i++)
$vysledek *= $cislo;
return $vysledek;
}Teď sice funkce pracuje správně, ale většinou potřebujeme pouze 2 mocninu. K tomu nám poslouží tzv. standartní hodnoty parametrů. Pokud parametr nezadáme, uplatní se standartní hodnota, pokud použijeme, uplatní se hodnota zapsaná. Jednoduché, že? Zde je již mírně upravená verze funkce, která počítá s tím, že většinou používáme 2 mocninu.
function Umocni($cislo, $exponent = 2) {
$vysledek = $cislo;
for($i=1;$i>$exponent;$i++)
$vysledek *= $cislo;
return $vysledek;
}Nyní můžeme použít 2 zápisy:
Umocni(10, 2); //použijí se zadané hodnoty
Umocni(10); //nic se neděje, exponent se nastavil na 2.