PHP tutorial

Već smo pokazali kako se PHP kod nalazi između <?php i ?> kvačica. Druga stvar jest da varijable prije svog imena imaju znak $.

Varijable

Varijable prije svog imena obavezno moraju sadržavati znak $. Tako PHP govori prevoditelju da se radi o varijabli, a ne o tekstu. Ukoliko izostavite znak $, aplikacija će javiti grešku (u najboljem slučaju) ili će prijeći preko nje (u najgorem slučaju) i umjesto sadržaja varijable ispisati samo njeno ime. Još jedan vrlo bitna stvar kod varijabli u PHP-u je da su imena varijabli case-sensitive ($mojeime nije isto što i $MojeIme).

Prebacivanje tipova varijabli

Sadržaj bilo koje varijable podložan je izmjeni svog tipa. Znači da nekakav broj može vrlo lako postati string i obratno.

Tipove možete mijenjati implicitno i eksplicitno (u slijedećim promjerima se neću pridržavati gore navedenih pravila imenovanja varijabli).

<? 
// implicitno 
$var = 1; // varijabla je tipa integer 
$var += 1.5 // varijabla je tipa double (realni broj) 
$var = 5 + "10 čaša"; // varijabla je integer (15)
$var = 5 + "10 čašica"; // varijabla je integer (15) 
// eksplicitno 
$int_neki_broj = 10; 
$str_neki_broj = (string) $int_neki_broj 
// prebacili smo broj u string (ASCII znakove)
?>

Eksplicitna izmjena tipa varijable vrši se tako da u neku novu varijablu pridružite neku već postojeću varijablu i ispred nje navedete u zagradama tip u koji želimo prebaciti varijablu koju pridružujete. Isto tako možete u varijablu pridružiti nju samu s eksplicitnom izmjenom tipa podatka.

<?php
$int_var=10; 
$int_var=(double) $int_var; 
echo gettype($int_var); 
// gettype($int_var) vraća tip dane varijable 
?>

Moguće konverzije su:

Komentari

PHP podržava više tipova komentara. U dosadašnjem tekstu koristio sam inline komentare ( // komentar ). Oni preskaču sav tekst koji se nalazi iza njih sve do početka novog reda.

Ukoliko želite komentirati više redova koristite se multiline komentarima

<?php 
/* Ovo je komentar 
koji se proteže kroz čak 
tri reda */ 
?>

Tipovi podataka

U PHP-u ne postoje fiksni tipovi podataka varijabli. Naime, ne morate definirati tip varijable prije njenog korištenja - varijablu možete deklarirati bilo kada unutar skripte i pridruživati joj različite tipove podataka tokom izvođenja skripte (iako ovo nije uobičajena niti previše pametna praksa). Isto tako možete mijenjati tip podataka neke varijable jednog te istog sadržaja, ali o tome par redaka kasnije.

Tipovi podataka koje podržava PHP su:

Cijeli brojevi

U ovaj tip varijable možemo pohraniti pozitivne i negativne brojeve u rasponu od -2147483648 do 2147483647 tj. 32 bita podataka. Možemo ih zapisati u decimalnom, oktalnom ili heksadecimalnom zapisu.

Par primjera:

$int_var=123; //pozitivan decimalni broj 
$int_var=-123; //negativni decimalni broj 
$int_var=0123; //oktalni broj 
$int_var=0#123; //heksadecimalni broj
Realni brojevi

Postoje dva načina spremanja realnih brojeva:

$dbl_var=0.123; 
// ili 
$dbl_var=1.123e8;

Budite pažljivi kada koristite realne brojeve. Naime, njihova točnost nije garantirana (zbog pretvaranja ovog broja u njegov binarni ekvivalent - recimo 0.33333 nikada neće biti točno prebačen u binarni ekvivalent). Stoga, nemojte ih uspoređivati za jednakost i vjerovati im do posljednje decimale.

Tekstualni podaci

Sadržaj string tipa varijable nalazi se između navodnika. Možete koristiti duple i jednostruke navodnike. Postoje razlike u ispisu sadržaja ovisno o tipu navodnika koje koristite.

Korištenjem duplih navodnika možete koristiti 'special characters'. To su posebni znakovi koji govore PHP-u da izvrši određene radnje pri ispisu sadržaja varijable. Ako ste ikada radili u C-u ili Perlu, već ste upoznati s ovim znakovima. To su znakovi koji slijede iza znaka backslash ( \ ).

Ukoliko želite da se neki tekst prebaci u novi red, pri gledanju stranice u prozoru browsera morat ćete se poslužiti <br> i sličnim tagovima. Znači, ako se želite koristiti PHP-om, morate se jako dobro znati služiti HTML-om.

Još jedan bitna razlika između duplih i jednostrukih navodnika je ta da će se pri korištenju duplih navodnika sadržaj varijable ispisati, a pri korištenju jednostrukih navodnika ispisat će se ime varijable skupa sa znakom $. Mali primjer će ovo dobro ilustrirati:

<?php 
$str_ime="Kreso"; 
echo ("moje ime je $str_ime"); 
?>

Ispisuje: moje ime je Kreso

Dok će

<?php 
$str_ime="Kreso"; 
echo ('moje ime je $str_ime'); 
?>

ispisati: moje ime je $ime

U PHP-u je također moguće spajanje više stringova u jedan ispis. To radimo pomoću '.' . Evo primjera:

<?php
$str_var1='Dijete'; 
$str_var2='ide'; //nema razmaka prije ili poslije riječi
echo $str_var1 . ' ' . $str_var2 . ' u školu'; 
// rezultira sa 
// Dijete ide u školu ?>
Nizovi

PHP podržava više vrsta nizova - tekstualne (associative) i cjelobrojne (vectors / indexed). Mogu biti jednodimenzionalni ili multidimenzionalni.

Primjer cjelobrojnog jednodimenzionalnog niza:

<?php 
$arr_boje=array('plavo','žuto','zeleno'); 
echo $arr_boje[0]; // ispisat će 'plavo' 
?>

Primjer tekstualnog (associative) niza:

<? 
// recimo da želite reproducirati sadržaj 
// svog hladnjaka u niz 
$arr_hladnjak=array( "jaja"=>12, "salama"=>"0.2 kg" );
echo $arr_hladnjak["salama"]."<br>\n";
// ispisali ste koliko salame imate u hladnjaku ?>

Ova dva tipa polja mogu se i kombinirati...

Dohvat podataka s formulara

Primjer jednog obrasca:

<form name="forma1" method="post" action="obrada.php"> 
  Ime <input type="text" name="ime"> <br> 
  Prezime <input type="text" name="prezime"> <br> 
  <input type="submit" name="slanje" value="Posalji"> 
</form>

Spremite ovu formu u file koji nazovite forma.htm. Sada stvorite novi file i nazovite ga obrada.php. Spremite ga u isti folder kao i forma.htm.

<? 
// prihvat i ispis podataka forme 
echo $_POST['ime'].' '.$_POST['$prezime']; 
?> 

Da smo u formi iznad koristili GET metodu, tada bi u obrada.php koristili $_GET['ime'] i $_GET['prezime'], ili ako nismo sigurni u metodu $_REQUEST['ime'] i $_REQUEST['prezime'].