phptutorial.odlican.net - Php tutorial PHP funkcije i klase
Funkcija nije ništa drugo nego naziv koji dajemo određenom bloku koda, s namjerom da ga upotrijebimo više puta.
Ukoliko imamo više od jednog argumenta razdvojamo ih s , znakom.
Primjer:
<?
function moja_prva_funkcija()
{
echo "Ja sam napisao svoju prvu funkciju";
}
echo "Tu je dio koda prije upotrebe funkcije....";
moja_prva_funkcija();
echo "..........Tu je dio koda poslije upotrebe
funkcije....";
moja_prva_funkcija();
echo "..........Tu je dio koda poslije ponovnog upotrebe
funkcije....";
?>
Rezultira s
Tu je dio koda prije upotrebe funkcije....Ja sam napisao svoju prvu funkciju..........Tu je dio koda poslije upotrebe funkcije....Ja sam napisao svoju prvu funkciju..........Tu je dio koda poslije ponovnog upotrebe funkcije....
Primjer funkcije s argumentom:
<?
function moja_prva_funkcija($argument){
echo "Ja sam napisao svoju prvu funkciju s ".$argument;
}
echo "Tu je dio koda prije upotrebe funkcije....";
moja_prva_funkcija("argumentom");
echo "..........Tu je dio koda poslije upotrebe funkcije....";
moja_prva_funkcija("drugim argumentom");
echo "..........Tu je dio koda poslije ponovnog upotrebe
funkcije....";
?>
Rezultira s:
Tu je dio koda prije upotrebe funkcije....Ja sam napisao svoju prvu funkciju s argumentom..........Tu je dio koda poslije upotrebe funkcije....Ja sam napisao svoju prvu funkciju s drugim argumentom..........Tu je dio koda poslije ponovnog upotrebe funkcije....
Što su to klase - Klasa je kolekcija funkcija i varijabli, odnosno klase definiraju objekt kao predložak za stvarne varijable.
Da bi smo koristili klase, potrebno je kreirati instancu objekta koristiteći operator new.
Klasa se sastoji od atributa (svojstva) i metoda (radnje)
Sintaksa klase je:
<?
class naziv_klase{
function naziv_klase() /*konstruktorska funkcija ima isto
ime kao klasa*/
{
}
var $varijabla; /*varijable*/
function moja_funkcija(){} /*jedna ili više funkcija*/
}
?>
Doista mi je teško riječima opisati klase i izači iz okvira funkcijskog razmišljanja. Pokušati ću vam isto predočiti kroz jedan primjer:
Stvorit ćemo klasu brojac
Primjer:
<?
class brojac {
function brojac ($od,$do,$korak){ /*klasa brojac imat će
konstruktorsku funkciju koja ce inicijalizirati varijable od
do korak broj*/
$this->od=$od; /*možemo vidjeti $this varijablu. Ona služi
za dohvaćanje varijabli unutar istog objekta*/
$this->do=$do;
$this->korak=$korak;
$this->broj=$this->od;
}
var $izvrsen=0; /*definirat ćemo jednu varijablu izvršeno
koja ce nam vraćati broj izvrsenja petlje*/
function radi(){ /*definirat ćemo funkciju radi koja će
brojati*/
while($this->broj+$this->korak<=$this->do){
$this->izvrsen++;
$this->mat(); /*pozivamo drugu funkciju (metodu) klase -
nije nuzno tako komplicirati stvari ovo je radi primjera */
$this->ispisi(); /*pozivamo drugu funkciju (metodu) klase
kako bismo ispisali svaki izvršeni broj*/
}
}
function ispisi(){
echo $this->broj.",";
}
function mat(){
$this->broj=$this->broj+$this->korak;
}
}
$brojac1 = new brojac(0,10,1); /*Da bismo koristili ovu
klasu moramo kreirati instancu objekta*/
$brojac1->radi();/*Nakon toga pozvati ćemo metodu radi()*/
?>
Rezultira s:
1,2,3,4,5,6,7,8,9,10,
Možemo stvoriti još dvije instance brojac2 i brojac3 s različitim od do i korakom
<?
$brojac2 = new brojac(0,50,2);
$brojac3= new brojac (0,100,3);
echo "<br />";
$brojac2->radi();
?>
Rezultira s:
2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,
Rezultira s:
3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,
90,93,96,99,
Rezultira s:
Brojac1 je izvršen:10 Brojac2 je izvršen:25 Brojac3 je izvrsen:33
Prava vrijednost može se vidjeti u nastavku ovog primjera. Klase se za razliku od funkcija može proširivati tako da novonastala klasa koristi sve atribute i metode klase koju proširujemo. Za to koristimo sintaksu class naziv_klase extends klasa_koju_prosirujemo {}
Višestruko nasljeđivanje nije moguće dakle proširena klasa može nasljediti atribute i metode samo jedne osnovne klase
Stvoriti cemo novu klasu brojac_pisi_tekst koja će biti proširenje klase brojac
<?
class brojac_pisi_tekst extends brojac {
function brojac_pisi_tekst($tekst){
$this->tekst=$tekst;
}
function ispisi_tekst(){
while($this->broj+$this->korak<=$this->do){
$this->izvrsen++;
$this->mat(); /*Koristimo mat() funkciju (metodu) iz osnovne
klase*/
echo $this->izvrsen." ".$this->tekst."<br />";
}
}
}
$brojac4= new brojac_pisi_tekst("Robert"); /*Stvorit ćemo
instancu brojac4 kojoj je cilj ispisati tekst Robert*/
$brojac4->brojac(0,3,1); /*Agrumente ćemo ubaciti pozivom na
klasu brojac*/
$brojac4->ispisi_tekst(); /*Pozvat ćemo metodu prosirene
klase*/
?>
Rezultira s:
1 Robert
2 Robert
3 Robert
Ovaj primjer bez komentara možete naći Ovdje
Ove stranice i sadržaj vlasništvo su phptutorial.odlican.net
PHP tutorial - odlican net s uputama za izradu vaših stranica