04. Dodatak na predavanje

Osnove PHP programiranja

Uvod - zašto nam je PHP jezik zanimljiv ?

PHP je skript jezik - jezik koji se ne "kompajlira" ili prevodi. Na računalu postoji "interpreter", program koji čita skript naredbe te ih izvršava.

Zašto želimo učiti PHP ? Zašto ne koristiti C, C++, ili čak Pascal? Pa C, C++ i ostale jezike ćemo koristiti ali ne za pisanje dinamičkih web-stranica. PHP je napravljen upravo s nakanom da se olakša pisanje dinamičkih web-stranica. Ako želimo napraviti dinamičke web-stranice brzo i s minimalno napora - koristimo PHP!

Kako ? Dinamičke php stranice su kao i obične web-stranice, osim što se php naredbe mješaju s HTML tagovima. Točnije, PHP naredbe su omeđene posebnim tagovima koji to indiciraju. Zašto web-server ne pošalje takve stranice kako su napisane klijentu ? Odgovor je jer one imaju nastavak .php, koji kaže web-serveru da to nije obična web-stranica, nego nešto traži dodatnu obradu, u ovom slučaju php-interpreter. Taj će program proći kroz cijelu web-stranici, te na mjestima indiciranim s PHP tagovima izvršiti naredbe, eventualno ih supstituirati s ispisom koji oni produciraju. I takva prerađena stranica bit će na kraju poslana klijentu koji će je prikazati.

        <html>
        <head>
        <title>primjer 1.</title>
        </head>
        <body>
                <?php
                        echo "Bok, narode!";
                ?>
        </body>
        </html>
        <html>
        <head>
        <title>primjer 1.</title>
        </head>
        <body>
                Bok, narode!
        </body>
        </html>
Primjer 1. Web-stranice s PHP naredbama i obična web-stranica.

Podaci i varijable

Imena varijabli počinju s dolarom ($) i nije ih potrebno unaprijed deklarirati. Ostatak imena mora početi s slovom ili podvučenom crtom (_), ali ime može sadržavati i brojke. Velika i mala slova se razlikuju!

	$var = "Ovo je string";
	$Var = "A ovo je različita varijabla od one prije";
	$_ok = "I ovo je dobro ime varijable";
	$o23456 = 23456;
Primjer 2. Imena varijabli.

Vrste podataka su:

	$a = -1234;	// negativni broj
	$b = 0123;	// oktalni broj
	$c = 0x1A;	// heksadecimalni broj

	$a = True;	// boolean

	$a = 1.234;	// decimalni brojevi
	$b = 1.2e3;
	$c = 7E-10;

	$a = 'string s jednostrukim navodnim znakom';
	$b = "string koji ima kraj linije na kraju\n";
	$c = "strings backslash-om \\ i s navodnim znakom \" u sebi. OK?";
Primjer 3. Vrste varijabli.

Složeni podaci:

	$a = array( 1 => 'one', 2 => 'two', 3 => 'three' ); # niz string-ova

	$b['ab'] = 1.3:			# niz decimalnih brojeva
	$b['ac'] = 3.2;

	$c[1] = 'jedan';
	$c['01'] = 1;			# različita varijabla od $c[1] !

	$zz = 0;
	$aa[$zz] = True;

	$d = array(1,2,3,5,7,11,13,17,19); # niz s cjelobrojnim indeksom

	// za razrede nećemo navoditi primjere - previše složeno
Primjer 4. Nizovi.

Sintaksa

Sintaksa je slična C-jeziku, ili Perl-skriptu. Naredbe treba završtiti s tička-zarez znakom ';' a mogu se protezati preko više linija, ili jedna linija može imati više naredbi.

Kao u pascalu-program se sastoji od niza struktura i ugnježđenih podstruktura, s tim da za početak i kraj strukture koriste se vitičaste zagrade, '{' i '}', umjesto begin i end. Međutim, tu analogija s Pascalom ili C++ prestaje, jer varijable definirane u lokalnu u substrukturi vrijede i na globalnoj razini (ali unutar programa ili podprograma/funkcije).

{
	php-naredbe
	{
		php-naredbe
		{
			....
		}
		......
	}
	.....
	{
		.....
		{
			.....
			{
				.....
			}
			.....
		}
		.....
	}
	.....
}

Unutar HTML datoteke PHP naredbe su omeđene posebnim tagovima:

	<body>
	Ovo je <? $a=1; echo ($a); ?>. primjer.

	A ovo je <?php $b="drugi"; echo ($b); ?> primjer.

	Ali može ovako:
	<script language="php">
		$c=3.0;			// primjer C++-nalik komentara
		$d=6.0;			# ljuska-nalik komentar (shell)
		$e=$d-$c;		/* C-like komentar */
	</script>
	za <% echo ($e); %>. i 4. primjer.

	</body>
Primjer 5. Sintaksa PHP web-stranica.

Petlje i if-naredbe

Operacije na podacima

Funkcije i podprogrami

	function hocu_kafu ($type = "cappucina")
	{
		return "Šalicu $type, molim!\n";
	}

	echo hocu_kafu ();	
				// ispiše "Šalicu cappucina, molim!"
	echo hocu_kafu ("espressa");
				// ispiše "Šalicu espressa, molim!"
Primjer 14. Funkcija s argumentom koji se može ispustiti (izvorni program).