Pokud máte na stránce část kódu, která se tam vyskytuje vícekrát, byla by otročina jí tam neustále kopírovat. Proto existují funkce a procedury, které stačí jednou nadeklarovat a pak je můžete kdykoliv zavolat podle potřeby.
Například:
<?php function hvezdicky () { echo"* * * * *"; } ?>
Pokud pak chci kdekoliv na stránce vypsat 5 hvězdiček, stačí jednoduše zavolat proceduru hvezdicky:
<?php hvezdicky; ?>
pozn.: Závorky za názvem funkce slouží k předávání parametrů
Nezáleží na pořadí, takže můžeme funkci klidně zavolat ještě dřív, než je definována v celku. Kvůli přehlednosti to ale stejně moc lidí nedělá.
Rozdíl mezi procedurou a funkcí je ten, že procedura pouze provede kód, který obsahuje, zatímco funkce navíc ještě vrací nějakou hodnotu. hvezdicky z příkladu jsou tedy procedura.
Obojí, funkce i procedury, se ale v PHP zapisují klíčovým slovem function.
<?php function secti () { $cislo1=5; $cislo2=3; return ($cislo1 + $cislo2); } ?>
Klíčové slovo return udává hodnotu, kterou funkce vrátí. Každá funkce může vracet pouze jednu hodnotu.
Funkce se pak klidně dá začlenit do ostatního textu.
<?php function secti () { $cislo1=5; $cislo2=3; return ($cislo1 + $cislo2); } echo 1+secti (); // vypíše hodnotu 9 (5+3+1) ?>
Pokud chceme (a že většinou chceme) aby například funkce secti sčítala libovolná čísla, která jí program předá, je třeba přiřadit jí parametry. Pro ně je určena ta závorka za funkcí.
<?php function secti ($cislo1, $cislo2) { return ($cislo1 + $cislo2); } echo secti (5, 9); ?>
Pozor, funkce pracují jen s proměnnými které jim předáme v parametru. Nelze proto odkázat na proměnnou uvedenou jinde v kódu.
To jde obejít jedině když použijeme u požadované proměnné klíčové slovo global.
Tohle tedy bude fungovat:
<?php $cislo1=10; function pricti ($cislo2) { global $cislo1; return ($cislo1 + $cislo2); } echo pricti(5); // vrátí 15 ?>< Předchozí Následující >
© 2006-2007 Petr Kuda - www.troska.cz