FUNKCIE
Funkciami takisto dosiahneme prehľadnejší , čiže kratší kód v ktorom sa o niekoľko týždňov môžme ľahšie orientovať. (Samozrejme uľahčovať si orientáciu v kóde sa snažíme nielen funkciami , ale aj poznámkami , logickými názvami premenných a pod. Ale o tom by mohla by samostatná kapitola).Funkciu definujeme nasledovným spôsobom :
function nazov_funkcie(paramater1,parameter2....) {
príkazy;
return výraz;
}
Jednoduchý príklad :
function Vypis_text() {
echo "Moja prvá funkcia";
}
Túto funkciu môžme v skripte neskôr zavolať jej názvom , čiže príkazom: Vypis_text();
Zátvorky za názvom funkcie v tomto prípade nemusíme použiť. Používajú sa v prípade ,že má funkcia definované parametre a v tom spočíva sila funkcií. Využitie parametra funkcie si vysvetlíme na príklade.
Táto funkcia nám zdvojnásobí zadané číslo :
Príklad 14
<?php //Funkcia nám zdvojnásobí parameter function Zdvojnasob($a) { return $a * 2; } echo Zdvojnasob(2); //vypíše 4 ?> |
Funkcie samozrejme môžu mať viacero parametrov. Tieto parametre môžme vyjadriť priamym zápisom ako v predošlom prípade. Ale môžme použiť aj premennú : echo Zdvojnasob($cislo); , alebo výraz : echo Zdvojnasob(5-3);
Tieto typy takisto môže funkcia vracať (return). Názov funkcie nie je citlivý na malé a veľké písmená.
Dáme si ešte jeden príklad s použitím podmienky (pre zopakovanie) a viacerých parametrov. Funkcia nám vypíše väčšie z dvoch čísel :
Príklad 15
<?php //Funkcia vráti väčšie číslo function vacsie_cislo($a,$b) { if ($a > $b){ return $a; } else { return $b; } } $cislo = 12; //použijem túto premennú ako parameter funkcie echo vacsie_cislo(5-2,$cislo); //takisto použijem výraz ako parameter , vypíše 12 ?> |
PREMENNÉ VO FUNKCIÁCH
Premenné použité vo funkciách ostávajú len vo vnútri funkcií. To znamená ,že ak by sa použila premenná s takým istým názvom v skripte ako aj vo funkcii , tak tieto dve nemajú nič spoločné. Je to tak preto , aby funkcia nezmenila hodnotu globálnej premennej.Príklad 16
<?php function Premenne() { $premenná = 10; } $premenna = 1; Premenne(); echo $premenna; // vypise "1" |
Ak chceme použiť globálnu premennú , použijeme na to kľúčové slovo global. A je nutné na začiatku funkcie definovať ,ktoré premenné budú globálne.
//použitie globálnej premennej function Global_Premenna() { global $premenna; $premenna = 10; } $premenna = 1; Global_Premenna(); echo $premenna; //vypise "10" |
K definícii globálnych premenných môžme použiť namiesto global pole $GLOBALS. V ktorom má PHP uložené všetky globálne premenné. K $GLOBALS pristupujeme ako ku asociatívnemu poľu ,kde index je názov premennej bez znaku "$".
//použitie poľa $GLOBALS function PoleGlobals_Premenna() { $GLOBALS["premenna"] = 10; } $premenna = 1; $premenna2 = 2; PoleGlobals_Premenna(); echo $premenna; //vypise 10 ?> |
Ak chceme aby sa premenná načítala svoju hodnotu pri volaní funkcie len po prvý krát použijeme na to kľúčové slovo static.
Príklad 17
<?php function Pripocitaj(){ static $cislo = 0; $cislo++; echo "$cislo <br />"; } Pripocitaj(); //vypise 1 Pripocitaj(); //vypise 2 ?> |
PARAMETRE FUNKCIÍ
Niekedy sú parametre funkcií implicitne definované ,alebo nepovinné. Napríklad môžme upraviť našu funkciu Zdvojnasob() a pomenujeme ju Vynasob() a prvy parameter nám bude určovať číslo ,ktoré chceme vynásobiť a druhé nám vyjadrí násobiteľ ,ktorý bude mať implicitne nastavenú hodnotu "1". Navyše zamedzíme násobeniu nulou.Príklad 18
<?php function Vynasob($cislo,$nasobitel=1){ if ($nasobitel!=0){ $vysledok = $cislo * $nasobitel; echo "$vysledok <br />"; } else { echo "Násobenie nulou táto funkcia nepodporuje!"; } } Vynasob(2); // vypise "2" vynásobí parameter implicitne číslom "1" Vynasob(2,2); //vypise "4" nasobitel = "2" Vynasob(2,0); //vypise chybovu hlasku ?> |
REKURZIA
Rekurzia je vlastne volanie funckie vo vnútri tej istej funkcie. Rekurzia je nebezpečná v prípade tzv. utopenia rekurzie ,kde hrozí pretečenie zásobníka. Klasickým príkladom rekurzie je výpočet faktoriálu :function Faktorial($Faktorial) {
return $Faktorial == 0 ? 1 : $Fakt * Faktorial($Fakt - 1);
}
Články
Predošlý článok : 4. Podmienky a cyklus
Nasledujúci článok : 6. Knižnice
Odkazy
Stiahnite si príklady vypracované v článku
Komentáre