Funkce

Vydáno: 06. 02. 2012; Poslední aktualizace: 06. 02. 2012; Autor: Zdeněk Moravec

Uživatelsky definované funkce

Funkce jsou výhodné, pokud potřebujeme provést stejnou sérii příkazů na více místech skriptu. Pokud sérii příkazů nadefinujeme jako funkci, stačí se dále odkazovat pouze na tuto funkci. Složitější skripty lze pomocí funkcí zpřehlednit. V PHP4 již můžeme používat i funkce s proměnným počtem argumentů.

Definice funkce má tento tvar:

function jméno (parametr1, parametr2, …)
{
sekvence příkazů;
return návratová hodnota;
}

Příkazem return funkce vrací svůj výsledek. Argumety i vracení hodnoty můžeme vynechat, pokud je u dané funkce nepotřebujeme.

Argumenty funkcí

PHP umožňuje předávání parametrů funkci pomocí argumentů. Díky tomu můžeme vytvořit spoustu funkcí, jejichž definici PHP neobsahuje, a které nám mohou usnadnit život. Např. funkce, která spočítá faktoriál vloženého čísla:

function factorial($a)
{
for ($i=1; $a>0; $a–) $i *= $a;
return $i;
}

Implicitně probíhá předávání argumentů hodnotou, tzn., že změny hodnoty argumentu se neprojeví mimo funkci. Pokud chceme, aby funkce mohla měnit hodnotu svých parametrů musíme je předat odkazem. To provedeme předřazením ampersandu (&) před název argumentu.

function (&$a) {

}

Pokud definujeme funkci, u které má jeden nebo více argumentů často stejnou hodnotu, můžeme využít tzv. implicitní hodnoty argumentů. Např.

function mocnina($a, $b=2) {  //tato funkce umocní základ $a na exponent $b

}

mocnina (200);    //Spočítá druhou mocninu čísla 200

Parametry, u kterých je určena implicitní hodnota musí být vždy definovány jako poslední. Jinak se bude funkce chovat nestandardně.

Návratové hodnoty

Funkce vrací svůj výsledek pomocí nepovinného příkazu return. Tímto příkazem také funkce ukončí svůj běh a skript bude pokračovat na řádku, z kterého byla funkce volána. Funkce nemůže vracet více hodnot, ale toto omezení se dá obejít s využitím polí.

function neco(…) {

return array ($a, $b, $c);
}

List($x, $y, $z) = neco();

Leave a Reply

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..