Varijable, petlje, grananja

Sastavni dio gotovo svake PHP skripte su varijable, petlje i grananja. U ovom dijelu naučiti ćemo što su GET varijable, tj parametri, kako raditi provjeru parametara i kako napraviti jednostavnu petlju. Napravite svi u istoj mapi kao i kod prethodnog tutoriala datoteku naziva druga.php. Recimo sada da trebamo napraviti funkcionalnost gdje skripta prima parametre putem GET varijable, jedan parametar je varijabla “a”, a drugi “b”. Skripta treba:

  • paziti da a i b uvijek moraju biti veći od 0
  • paziti da b uvijek mora biti veći od a
  • ispisati zbroj a + b
  • ispisati umnožak a + b
  • ispisati zbroj svih brojeva od a do b, tj ako se upiše a = 5, b = 7, skripta treba ispisati zbroj od 5 + 6 + 7.

Prije nego li napišemo ovu skriptu treba se upoznati s načinima kako preglednik šalje parametre PHP skripti. Najčešći načini su putem GET i POST varijabli. GET varijable se šalju preko URL-a, npr ovako: http://localhost/moj-projekt/prva.php?a=5&b=7. Znači kod slanja GET varijabli iza naziva skripte potrebno je upisati upitnik (?) i nakon toga ide naziv varijable = vrijednost, svaka slijedeća varijabla odvaja se sa znakom &. POST se pak ne šalje preko linka nego se šalje putem sadržaja, najčešće se koristi kada npr imamo neku formu (prijava korisnika, registracija korisnika, objava članka i sl). Formi se zada da koristi POST metodu, te će web preglednik automatski podesiti upit da se podaci pošalju u ispravnom formatu.

Kada smo to naučili idemo napraviti našu skriptu druga.php sa sadržajem

<?php 
	$a = 0;
	$b = 0;
	$ispis = "";
	if(isset($_GET["a"])){
		$a = $_GET["a"];
	}
	if(isset($_GET["b"])){
		$b = $_GET["b"];
	}
	
	if($a <= 0 || $b <= 0){
		$ispis = "Varijable a i b moraju bite unesene i veće od 0";
	}else if($a > $b){
		$ispis = "Varijable b mora biti veća od varijable a";
	}else{
		$zbroj = $a + $b;
		$umnozak = $a * $b;
		$sum = 0;
		for($i = $a; $i <= $b; $i++){
			$sum += $i;
		}
		
		$ispis .= "a + b = " . $zbroj;
		$ispis .= ", a * b = " . $umnozak;
		$ispis .= ", zbroj svih brojeva od a do b = " . $sum;
	}
?>
<html>
	<head>
		<title><?php echo "Moja druga skripta"; ?></title>
	</head>
	<body>
		<?php echo $ispis; ?>
	</body>
</html>

Na ovom primjeru možemo vidjeti i naučiti veliki dio operacija koje će vam biti potrebne prilikom web programiranja. Na početku otvaramo PHP blok koji sadrži svu logiku naše skripte. U startu postavljamo varijable $a i $b na 0. Svaka varijabla u PHP jeziku mora započeti sa znakom $, tj $mojaVarijabla. Nadalje imamo provjeru da li postoje GET varijable a i b, tj da li se kod poziva skripte upisalo http://localhost/moj-projekt/prva.php?a=NESTO&b=NESTO. Metoda isset vara true ukoliko postoji varijabla koja se provjerava, tj if(isset($_GET[“a”])) vratiti će true ukoliko je po pozivu skripte upisano ?a=NESTO. Ukoliko varijable a i b nisu upisane kod poziva skripte one ostaju na početnoj vrijednosti, tj 0.

Nadalje imamo provjeru da li su varijable $a i $b veće od 0, ako nisu varijabla $ispis se postavlja na “Varijable a i b moraju bite unesene i veće od 0”. Ovdje vidimo da imamo nekoliko operatora. Operator > označuje veće, >= je veće ili jednako, < je manje, <= je manje. Operator || je OR operator. AND operatorje &&/ no njega ne koristimo u ovom primjeru.

Odmah ispod je provjera da li je $a veći od $b, ako je b manji od a onda varijabla $ispis poprima vrijednost “Varijable b mora biti veća od varijable a”. Nadalje imamo else, tj ako niti jedan od gornjih uvjeta nije ispunjen izvršava se ovaj dio koda. Prvo imamo jednostavno definiranje varijabli $zbroj kojemu kao vrijednost dajemo $a + $b, te varijabla $umnozak kojoj dajemo vrijednost $a * $b. Iza toga definiramo varijablu $sum kojoj u startu dajemo vrijednost 0.

Sada dolazimo do for petlje. Naša for petlja glasi: for($i = $a; $i <= $b; $i++), što znači da for petlja gleda varijablu $i, koja je u početku jednaka vrijednosti $a, te drugi dio kaže da se for petlja izvršava sve dok je ispunjen uvjet $i <= $b (dok je $i manji ili jednak $b), i na kraju imamo dio koji govori što radimo s varijabom $i na svakoj iteraciji, ovdje imamo $i++. ++ znači da na svakoj iteraciji uvećavamo varijablu za 1, to se moglo napisati i kao $i += 1.
Unutar for petlje na svakoj iteraciji varijablu $sum uvećavamo za trenutnu vrijednost varijable $i.

Ispod for petlje podešavamo varijablu $ispis. Vrlo važno je uočiti da imamo ovako podešeno $ispis .= “nešto” . “nešto 2”. Postavljanje varijabli može biti na slijedeći način:

  • $varijabla = “Nesto” – vrijednost varijable će biti “Nešto”;
  • $varijabla .= “Nesto” – vrijednost varijable će biti stara vrijednost na koju zalijepimo “Nešto”
  • $varijabla = 5 – postavljamo vrijednost varijable na 5
  • $varijabla += 2 – vrijednost varijable će biti stara vrijednost + 2
  • $varijabla ++ – vrijednost varijable će biti stara vrijednost + 1

Isto tako iza znaka = možemo izvršavati operacije, npr spajanje dva stringa se izvršava s točkom, tj ako imamo varijablu $a = 5, te kod $ispis = “nešto ” . $a će dati “nešto 5”.

Ostatak koda bih trebao biti jasan je sličan prethodnom primjeru. Sada bih bilo dobro da isprobate ovu skriptu s raznim parametrima. Probati uočiti neke probleme koji bih se mogli pojaviti s ovom skriptom (recimo kod slanja parametara). Te da izdvojite sat-dva kako bih napravili neku svoju skriptu da usvojite korištene funkcije, petlje i grananja.