MareX WeBlog

PHP výuka - funkce

REKLAMA

Další důležitou součástí programovacích jazyků jsou funkce a to jak funkce předpřipravené, tak ty které si vytvoříme sami. V této části se podíváme na funkce přímo implementované v PHP.

Funkci bychom si mohli představit jako balíček, který obsahuje více nějakých příkazů. Tento balíček si jednou vytvoříte a pak jej můžete kdykoliv a kdekoliv použít, aniž byste museli všechny příkazy znovu vypisovat, pouhým zavoláním funkce. PHP obsahuje spoustu již připravených funkcí, které můžete použít, ale samozřejmě si můžete libovolně vytvářet funkce vlastní. My se samozřejmě zaměříme na vytváření a používání vlastních funkcí, ale nejprve si na v PHP připravených funkcích ukážeme, jak se vlastně používají.

Chcete-li použít nějakou funkci, zavoláte jí tak, že napíšete její název a za ním kulaté závorky. Některým funkcím je nutné předávat parametry (například text, který chceme pomocí oné funkce zpracovat) a ty se předávají právě v závorkách za názvem funkce. Pozor, závorky za názvem funkce musíte uvést i tehdy, pokud žádné parametry nepředáváte. Je to z toho důvodu, že podle nich PHP pozná, že voláte funkci. Jinak bude název funkce považován za konstantu.

První funkcí, kterou si pro příklad ukážeme je time(). Tato funkce vrací UNIX time stamp (časové razítko), což je počet sekund od 0:00:00 1.1.1970. Tato funkce je jedna z těch, které nepřijímají žádné parametry, takže ji zavoláme takto:

time();

Ovšem takto by nám v našem scriptu nebyla moc platná, protože výsledek funkce nikde neuvidíme. Můžeme ho uložit třeba do proměnné:

$cas = time();

Teď jsme do proměnné $cas uložili výsledek funkce time().

Můžeme ho ale také rovnou vypsat do stránky:

echo time();

Nyní si ukážeme například funkci print(). Tato funkce nedělá nic jiného, než že předávaný řetězec vypíše. Tedy vlastně to samé jako příkaz echo. Ovšem echo není funkce, je to jazykový konstrukt. O tomto příkazu si možná něco napíšeme jindy.

Takže funkce print() přijímá jeden parametr a tento parametr je povinný. To znamená že ho musíte vždy zadat, jinak volání funkce skončí s chybou.

print("nějaký text");

Tento příkaz vypíše text ‘nějaký text‘. Protože tato funkce pouze vypisuje text na obrazovku, nemá smysl ukládat výsledek funkce do proměnné, jako to bylo u funkce time().

Dále existují funkce, které přijímají i nepovinné parametry. Nepovinné parametry jsou takové, které zadávat nemusíte a přitom volání funkce nezpůsobí chybu. Jako příklad nám může posloužit funkcestr_split() (implementována až v PHP5), která rozdělí předaný text na části podle zadaného počtu znaků. Jako první parametr se předává text, který chceme rozdělit a tento parametr je povinný. Jako druhý parametr předáváme číslo, po kolika znacích má být text rozdělen. Tento druhý parametr je nepovinný. Pokud jej nezadáme, text se rozdělí po jednom znaku (to je standardní hodnota parametru). Rozdělený řetězec nám funkce vrátí jako pole:

$text = str_split("Ahoj lidičky");

Zde jsme druhý parametr nezadali, takže text bude rozdělen po jednom znaku. Pole $text bude tedy vypadat takto:

Array
(
    [0] => A
    [1] => h
    [2] => o
    [3] => j
    [4] =>
    [5] => l
    [6] => i
    [7] => d
    [8] => i
    [9] => č
    [10] => k
    [11] => y
)

Nyní zadáme druhý parametr:

$text = str_split("Ahoj lidičky", 3);

Teď bude pole $text vypadat takto:

Array
(
    [0] => Aho
    [1] => j l
    [2] => idi
    [3] => čky
)

Jak vidíte, v prvním případě se uplatnila takzvaná standardní hodnota parametru, která je u této funkce číslo 1. A jistě jste si také všimli, že jednotlivé parametry se oddělují čárkou.

A jak taky vidíte, funkce mohou vracet nejen jakoukoli jednoduchou hodnotu (text, číslo, booleovskou hodnotu true nebo false), ale i třeba pole.

Ještě existují funkce s proměnným počtem parametrů. To jsou takové funkce, které přijmou jakýkoliv počet parametrů. Zde nám jako příklad může posloužit funkce max(). Tato funkce vrátí nejvyšší číslo ze všech předaných čísel. Funkci můžeme předat buď pole, v tom případě vrátí nejvyšší hodnotu tohoto pole, nebo jednotlivá čísla, v tom případě musí být zadána alespoň dvě.

$cislo = max(5, 10);

V proměnné $cislo je nyní hodnota 10.

$cislo = max(1, 10, 8, 15, 3, 0);

Teď má proměnná $cislo hodnotu 15.

$pole = Array(2, 6, 4, 9, 0, 7, 5);

$cislo = max($pole);

Zde jsme předali funkci pole a v proměnné $cislo je hodnota 9.

Vidíte, že tato funkce je docela variabilní, co se předávání hodnot týká. Přijme jak samostatné hodnoty, tak pole a sama pozná, co se po ní chce. To samé lze používat samozřejmě ve vlastních funkcích, o kterých si budeme povídat v příštím článku.

REKLAMA

PHP výuka - funkce