php - pre začiatočníkov

Vytlač príspevok
Odporuč príspevok
Bookmark and Share PRIDAŤ NA VYBRALI.SME.SK

PHP Manuál : 5. Funkcie

Možnosť vytvoriť si funkciu a neskôr ju zavolať je vhodná najmä ak sa istý algoritmus opakuje viackrát ...
Navigácia
  1. Funkcie
  2. Premenné vo funkciách
  3. Parametre funkcií
  4. Rekurzia

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


php | stály odkaz

Komentáre

Pozor, na konci je potreba spočítať neľahkú matematickú úlohu! Inak komentár nevložíme. Pre tých lenivejších je tam tlačidlo kúzlo.



Prevádzkované na CMS TeaGuru spoločnosti Singularity, s.r.o., © 2004-2014