phptutorial.odlican.net - Php tutorial PHP funkcije i klase

PHP funkcije i klase


Funkcije

Funkcija nije ništa drugo nego naziv koji dajemo određenom bloku koda, s namjerom da ga upotrijebimo više puta.

Sintaksa
function moj_naziv_funkcije(argumenti_ako_ih_želimo){
kod koji funkcija izvršava }

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....


Klase

Š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,

echo "<br />";
$brojac3->radi();

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,

echo "<br />";
echo "Brojac1 je izvršen:".$brojac1->izvrsen." Brojac2 je izvršen:".$brojac2->izvrsen." Brojac3 je izvrsen:".$brojac3."<br />";

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


Ukoliko imate bilo kakvih pitanja Pišite mi

Ove stranice i sadržaj vlasništvo su phptutorial.odlican.net

PHP tutorial - odlican net s uputama za izradu vaših stranica

Početna stranica

Besplatni programi

Php tutorial

Što je to PHP?

Osnove PHP-a

Razne operacije - PHP

String u php-u (Tekst)

Ispis iz PHP-a

PHP petlje

PHP uvjetna izvršavanja

PHP funkcije i klase

PHP nizovi

PHP i HTML

GET metoda PHP

Online forme i PHP

MySQL spajanje

MySQL ispis

MySQL pohrana

Korisne PHP skripte

PHP rad s datotekama

PHP sessions

PHP cookies