Home   FORUM   Toplista   HTML   CSS   JavaScript   PHP   DIZAJN   SEO   Mapa
KONTAKT
izuzetan[at]gmail.com






TOP LISTA SAJTOVA

Kreiranje sopstvenih funkcija

U gotovo svim programskim jezicima postoje funkcije koje sami pravimo i po potrebi višestruko koristimo. Tako one postoje i u PHP-u. Najjednostavnije rečeno, funkcija je imenovani blok koda koga sami pravimo jednom a po potrebi upotrebljavamo više puta. Znači ako se deo nekog koda, ili neko izračunavanje stalno i često ponavlja u programu, onda se taj deo koda može izdvojiti u funkciju. To će vam omogućiti da funkciju koju sami napišete koristite isto kao i neku ugradjenu funkciju, tako što je pozivate neograničen broj puta dodeljivanjem potrebnih parametara. Funkcije sa kojima smo se do sada susretali su sistemske ugradjene funkcije. Medjutim u PHP-u kao što sm rekli korisnik može praviti i sopstvene funkcije.

Izradu sopstvene finkcije započinjemo rezervisanom rečju function. Zatim sledi po našem izboru ime te funkcije. Zatim slede u zagradi parametri odvojeni zarezom, pa u velikim zagradama "{ }" telo ili kod funkcije koji će biti izvršen svaki put kad se funkcija pozove. To izgleda ovako:

function formula($parametar1, $parametar2,...., $parametarN, "stringN", 10, ….){
   //telo funkcije
}

U telu funkcije inače možete koristite sve vezano za PHP i HTML što smo do sad naučili i šta će mo naučiti. Znači tu možete pozivati kako sistemske ugradjene funkcije, tako i vaše funkcije, deklarisati nove promenjljive, iskaze include ili require itd. Znači apsolutno sve.

U skriptama se ova naša funkcija iz gornjeg primera poziva više puta kad je potrebno na sledeći način:

formula($parametar1, $parametar2,...., $parametarN,"stringN", 10, ….);

Ugradjene sistemske funkcije su dostupne u svim skriptama, dok su one koje sami pišete dostupne samo skriptama u kojima su deklarisane. A deklariše se tako što se funkcija napravi u skripti (fajlu) koja je poziva ili ako je pozivamo u više skripti (fajlova) obično pravimo jedan fajl, na primer funkcije.inc u kome se smeštaju sve funkcije koje ste napravili pa se u svim skriptama u kojima su te funkcije potrebne one umeću iskazom require ili include, na primer include (funkcije.inc).

Ime funkcije u PHP zanemaruje razliku izmedju malih i velikih slova, tako da je potpuno isto „formula“, „Formula“ ili „FORMULA“. Uobičajno je da se koriste mala slova za pisanje imena funkcija. Imena funkcija moramo davati tako da medjusobno budu različita, kako sa ugradjenim funkcijama tako i medjusobno koje pravimo. Ime fnkcije može da bude sastavljeno od slova, cifara i donjih crta, stim da cifra ne sme biti na početku imena a donja crta sme.

Kao što vidimo u gornjem primeru skoro svaka funkcija ima odredjen broj parametara (mogu se praviti funkcije i bez parametra), koji mogu biti obavezni i oni koji nisu obavezni. Parametri mogu biti string, niz, promenjljiva, ili bilo koji broj. Parametare funkcija najbolje je objasniti na primeru izradjivanja funkcije za automatsko kreiranje tabela:

<?
pravljenje_tabele (5, 1000, 1500, 45, 60);
echo "<br>";
pravljenje_tabele (10, 300, 600, 14, 28);
echo "<br>";
pravljenje_tabele (12, 500, 255, 34, 23);
function pravljenje_tabele ($B, $v1, $v2, $t1, $t2) {
echo "
<table border=\"".$B."\" width=\"200\">
<tr>
<td align=\"center\" width=\"100\" height=\"25\">Visina</td>
<td align=\"center\" width=\"100\" height=\"25\">Težina</td>
</tr><tr>
<td align=\"center\" width=\"100\" height=\"25\"> ".$v1."</td>
<td align=\"center\" width=\"100\" height=\"25\">". $t1."</td>
</tr><tr>
<td align=\"center\" width=\"100\" height=\"25\">". $v2."</td>
<td align=\"center\" width=\"100\" height=\"25\">". $t2."</td>
</tr></table>
";}
?>

Dobićemo sledeći rezultat:

Visina Težina
1000 45
1500 60

Visina Težina
300 14
600 28

Visina Težina
500 34
255 23

Znači jednom smo napravili funkciju za tebelu i kad god je pozovemo sa različitim parametrima ona pravi na osnovu njih tabelu.Obratite pažnju da smo tabelu napravili na sledeći način:

"HTML kod 1".$B."HTML kod 2".$v1."HTML kod 3".$t1."HTML kod 4".$v2."HTML kod 5".$t2

E sad da malo bolje objasnimo parametre funkcija koji nisu obavezni . Uuzmimo opet primer kreiranja tabela. Dodajmo mogućnost odredjivanja širine ivica, razmak izmedju ćelija i margine:

$podatak = array ("Prvo polje", "Drugo polje", "Trece polje");
tabela ($podatak, 3, 8, 8);
function tabela ($podatak, $granica, $celija, $razmak_celija) {
   echo "<table border= $granica cellpadding= $celija cellspacing= $razmak_celija>";
   foreach ($podatak as $index => $vrednost){
      echo "<tr><td> $vrednost </td></tr><br>";
   }
   echo "</table>";
}

Rezultat će biti sledeći:

Prvo polje
Drugo polje
Trece polje

A ako u istoj skripti umesto tabela ($podatak, 3, 8, 8) stavimo tabela ($podatak) biće:

Prvo polje
Drugo polje
Trece polje

Znači pošto nismo pozivom funkcije definisali 2, 3, i 4 parametar onda se koriste podrazumevane vrednosti koje smo dali prilikom izrade funkcije.

E sad na primer umesto function tabela ($podatak, $granica=1, $celija=4, $razmak_celija=4) ubacimo function tabela ($podatak, $granica, $celija, $razmak_celija), a umesto tabela ($podatak, 3, 8, 8) ubacimo tabela ($podatak, 3) rezultat će biti:

Prvo polje
Drugo polje
Trece polje

Prvi parametar funkcije tabela je obavezan i zato je na prvom mestu dok ostala tri parametra nisu obavezna. Svi parametri koji su obavezni moraju stajati napred a oni koji nisu obavezni na kraju spiska parametara. Takodje parametri koji nisu obavezni mogu (ali i ne moraju) imati početne podrazumevane vrednosti kao u našem slučaju, tako da u slučaju ako nisu dati pri pozivu funkcije imaju podrazumevanu vrednost.

Ne morate zadati sve opcione parametre, neke možete i izostaviti. Medjutim ne možete izostaviti na primer prvi opcioni parametar a ubaciti one iza njega već se izostavljaju na primer zadnji, ili zadnji i predzadnji, znači od pozadi. Zato na kraju stavljajte parametre sa najmanjim prioritetom a kako prioritet raste tako parametri idu napred.

Copyright © 2010 BUbaj. Powered By bubaj.com
PHP    PHP sintaksa    Fajl    Niz    String    Funkcija    Objektno programiranje    MySQL    Unos fajla    Datum    Forme    Sesija    Registracija