19
Visoka škola strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Kojić Pre početka… Pƌe početka učeŶja jezika jako je ďitŶo da se ƌazuŵe zŶačaj dokuŵeŶtaĐije jezika i upotƌeďa iste. ZǀaŶičaŶ sajt za PHP je http://php.net/ Na tom sajtu se nalazi dokumentacija, koja pored opšte siŶtakse i pƌaǀila jezika iŵa ǀeliki ďƌoj pƌiŵeƌa, komentara i sugestija http://php.net/manual Sintaksa php koda Početna i krajnja oznaka PHP koda unutar web stranice su: 1. <? ?> 2. <?php ?> 3. <script language="php"> </script> Provera rada <?php phpinfo(); ?>

Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

Visoka škola strukovnih studija za informacione i komunikacione tehnologije Beograd

Osnove PHP-a

dr Nenad Kojić

Pre početka…

• P e početka uče ja jezika jako je it o da se azu e z ačaj doku e ta ije jezika i upot e a iste.

• Z a iča sajt za PHP je http://php.net/

• Na tom sajtu se nalazi dokumentacija, koja pored opšte si takse i p a ila jezika i a eliki oj p i e a, komentara i sugestija

• http://php.net/manual

Sintaksa php koda

Početna i krajnja oznaka PHP koda unutar web stranice su:

1. <? ?>

2. <?php ?>

3. <script language="php"> </script>

Provera rada

<?php

phpinfo();

?>

Page 2: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

Gde i kao se piše PHP kod

• Kod ože iti i te i ili ekste i.

Za interno napisan kod:

• St a i a ože da sad ži: samo php kod, php kod koji je integrisan u HTML ili HTML koji je integrisan u PHP

• U s i slučaje i a st a i a o a da i a eksta ziju .php

• Ako je st a i a sa o sa php kodo tada poči je sa <?php i završa a se sa ?>

• Ako je HTML kod potrebno integrisati u PHP kod tada se on piše unutar echo().

• Ako je PHP kod pot e o i teg isati u eći ski HTML, tada se a to mestu otvara php sekcija sa <?php --- ?>. Ovakvih sekcija unutar jed e HTML st a e ože iti eogra iče o ogo.

Primer <html>

<head>Proba</head>

<body>

<p>Prvi pasus</p>

<?php

//ovde se kreira drugi pasus

echo("<p>Drugi pasus</p>");

?>

<p>Treci pasus</p>

<?php

//ovde se kreira horizontalna linija i tag H3

echo("<hr/>");

echo("<h3>Kraj</h3>");

?>

</body>

</html>

Originalni kod php strane Kod u browser-u

<body>

<h2> Postavka oglasa </h2>

<table cellspacing="8">

<tr><td> e-mail: </td> <td><input type="text" name="mail"> </td> </tr>

<tr><td><b style="color: red">*</b> <b>Marka: </b></td> <td>

<?php

$dbhost = 'localhost';

$dbuser = 'root';

$konekcija = @ mysqli_connect('localhost', 'root', '') or die('Veza sa bazom ne moze biti uspostavljena. Pokusajte kasnije.');

echo ('<select name="marka" id="marka" onChange="prikaz()";/>');

echo "<option selected>--- Izaberite ---</option>";

while($niz = mysql_fetch_array($rezultat)){

echo ("<option value='$niz[0]'> $niz[0] </option>");}

echo ('</select>');

mysql_close($konekcija);

?> </td> </tr>

<t ><td>Godište: </td> <td> od:

<?php

$i=0;

echo ('<select name="god_od">');

echo ("<option value='%'>--- Izaberite ---</option>");

for ($i=2009; $i>1929; $i--){

echo ("<option value='$i'> $i </option>");

}

echo ('</select>');

?>

</body>

Primer Eksterni fajl

• Kao i kod drugih jezika, kod u PHP-u se ože di ekt o pisati a tekućoj st a i i ili u esti kao spoljaš ji fajl.

• Funkcija include(), ko pleta sad žaj zadatog spoljaš jeg fajla postavlja u stranicu koja je taj kod pozvala.

• O aj kod se kopi a a esto gde je funkcija include pozvana

• O aj deo koda se tada po aša kao sasta i deo počet e st a i e

<html> <body> <?php include("header.php"); ?> <p> text</p> </body> </html>

Page 3: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

Eksterni fajl – include vs require

• Postoje četi i fu k ije za učita a je spoljaš jih fajlo a:

• include – učita a je spoljaš jeg fajla

• include_onse() – učita a je fajla sa o jed o

• require() – isto kao i i lude sa azliko što kod poja e g eške e oguć osti ada e ui e zausta lja kod, a i lude sa o ge e iše upozo e je o g eš i

• require_onse() – isto kao i require() sa o što p o e a a da li je dati fajl eć učita , pa ako jeste, e uključuje ga po o o

Uključiva je datoteka

• Uključi a je sad žaja spoljaš je datoteke ože se u postojeću stranicu dodati tekst ili deo koda

• Na ed a za uključi a je datoteke je i lude • Si taksa i lude i e_datoteke ; • P i e i lude tekst.t t

• Nailaskom na ovaj red koda, ako je u tekst.txt definisan neki tekst, taj tekst i se uključio u sad žaj st a i e, kao da je k ei a u HTML-u

• Ako postoji pot e a za iše datoteka, o da se p a e ge e ička i e a koja su slič a, i koja se p og a ski ogu poz ati

• Primer : Ako postoji 10 datoteka sa imenima tekst1.txt, tekst2.txt, ..., tada se mogu kroz for petlju pozvati kao ime

$brojac=1; i lude tekst .$ oja . .t t ;

HTML tagovi <span> i <div>

• Ova dva taga imaju vrlo veliku primenu kada se koristi PHP kod

• Razlog je što se k oz jih ajlakše ispisuje sad žaj koji je do ije od serverskog koda

• Njiho o upot e o u i i ijal oj st a i i, dok i se e dodeli sad žaj, a estu koje je za to p ed iđe o e a išta

• Dobijanjem nekog podatka od servera, on se prikazuje na prostoru sajta gde se nalazi neki od ovih tagova

• Razlika eđu ji a je eliči a polja koja se do ija za ispis

• <span> tag se koristi kada se želi defi isati deo teksta koji p ipada jed oj liniji

• Ako se želi defi isa je eće g upe teksta tada se ko isti <div> tag.

Kreiranje template-a

• Kod k ei a ja st a i a u PHP ajčešće se p o ela struktura organizuje u blokove i regione

• Svaki od blokova/regiona se učita a po aoso , k ei ajući a taj ači podlogu za di a ički sajt

<HTML><HEAD><TITLE>PRIMER</TITLE></HEAD> <BODY> <DIV ID=“HEADER”>

<?php require_once "/include/header.html"; ?>

</DIV> sadržaj <DIV ID=“FOOTER”>

<? require_once "/include/footer.html"; ?> ....

Page 4: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

logo <?

require_once "/include/header.html";

?>

<?

require_once

"/include

/meni.html";

?>

Sadržaj

Search

MAIL

<?

require_once

"/include

/desno.html";

?>

Slika

<?

require_once "/include /header.html";

?>

Upotreba PHP koda

• Za razliku od prethodnog slajda gde se templet-o učita aju ht l st a i e češće će se učita ati php st a i e, koje i aju eku s oju di a iku p . e i iz baze podataka)

• Najčešće se sajt p a i u eći sko HTML kodu, a delo i sajta di o i , koji su a e je i eki sad žaji a, su pojedi ač i php kodo i

• Na taj ači jed a st a a sajta je skup iše eza is ih php kodo a od kojih s aki i a s oju a e u i deša a se eza is o od ostalih

• I i ijal a a a PHP koda je što zahte a po o o učita a je st a i e da i p ikazao sad žaj do ije ado ekog PHP koda

• O aj edostatak sa po o i učita a je st a e je eše p i e o AJAX teh ologije i sada s aki deo st a e, ože iti eli a za se e, što daje elike

oguć osti a e -u

Ispis u PHP-u naredbom echo

<html>

<head><title> Pocetak PHP-a</title></head>

<body bgcolor="#000FFF">

<?php

echo ("Tekst ispisan u PHP-u“); ?>

</body>

</html>

echo(“”); je naredba za ispis sadržaja u browser-u.

Ispis HTML kod-a

• S e što se ađe u uta fu k ije echo ili print se ispisuje korisniku u browser-u tako što to se e p e ede u HTML kod . Mogu se koristiti sa ili bez zagrada.

• Na o aj ači se k oz PHP ispisuju i HTML tago i, kao što se u JavaScript-u to radilo sa

docu e t. rite esto ;

• Primer

<body>

<?php

echo ("<p><hr/>");

echo ("Tekst ispisan u PHP-u </p>");

echo ("<br/> Drugi tekst ispisan kroz PHP!");

?>

</body>

Page 5: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

<html>

<head>

<title>Moj prvi PHP skript</title>

</head>

<body>

<?php

print ( Zdravo arode! );

?>

</body>

</html>

Primer - Ispis naredbom print

print(“”); je naredba za ispis sadržaja u browser-u.

Ispisi u zavisnosti navoda <body>

<?php

$ime = "Nikola";

print "Zdravo $ime<br>";

// ispisuje Zdravo Nikola

print 'Zdravo $ime <br>';

echo 'Zdravo $ime <br>';

// ispisuje Zdravo $ime;

p i t Zd a o \$i e < > ; // ispisuje Zdravo $ime ******* escaped the variablename

?>

</body>

Primer

Sintaksa PHP jezika

• Svaki iskaz u php-u mora se završiti sa ; • Iza ko a de dolaze z a i a oda gde se defi iše a šta ko a da

deluje

echo ("Tekst ispisan u PHP-u );

• Ukoliko je pot e o p ikazati z ake a oda a da se e tu ače kao sastavni deo komande treba u reči pre navoda staviti \

echo"Ova kuća je \"haos\" !";

Ova kuća je "haos" !

• Komentari su odvojeni sa #, //, /* - */

• Prva dva se definišu jed o ed e i sta ljaju se a početak s akog pojedi ač og eda, dok su d uga d a za početak i k aj iše ed ih komentara

• Po ed klasič og ispisi a ja ko a do e ho postoje i spe ijal i z a i koji osta ljaju dodat e oguć osti

Prelazak u novi red: uticajem servera ili html-a

• echo "Hallo\n";

• echo "Hallo<br\>";

Izlazne sekvence u znakovnim nizovima

pod navodnicima

Znak Značenje

\n Nov red

\r Povratak u prvu kolonu (carriage-return)

\t Horizontalni tabulator

\\ Obrnuta kosa crta

\" Znak navoda

\$ Znak za dolar

Primer

Page 6: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

Komentari <?php

echo "Zdravo, svete!<br>"; // Ovo je komentar u jednom redu

// u stilu jezika C++

/* Ovo je blok komentara

u iše edo a. */

e ho "Zd a o, još jed o .< >";# O o je ko e ta u stilu

# ko a d ih ok uže ja U i a

?>

<?php

/* Sledeći ed će ispisati, "O o eće

ispisati išta."

*/

?>

O o eće ispisati <?php # e ho " ešto"; ?> išta.< >

Ispis grupe tagova po oću echo

Ispis Java script koda po oću echo

Ispis Java script koda po oću echo

Page 7: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

Promenljive u PHP-u

• Poči ju eze isa i si olo $, ako čega ide i e p o e lji e, koja poči je slovom ili _

• Imena promenljivih su keysensitive

Primer:

$pera="Perica Peric";

$broj=15;

$niz[0]=22;

$niz1[22]="milence";

• Promenljive u svom imenu mogu da sadrže samo alpha-numeričke karaktre (a-Z, 0-9, and _ ) • Promenljive ne smeju da sadrže n space-ova •Ako promenljiva ima više reči moraju biti povezane sa _ ili međusobno spojene. ($my_string, $myString)

Primer

variable variable

• U PHP-u se pored di a ičke p o e e sadržaja ože ealizo ati i di a ička p o e a i e a p o e lji e

(identifikator)

• Ako se promenljivoj telefon dodeli vrednost 20000 imamo:

• $telefon=20000;

• ali se isto ože postići i sa: • $artikal="telefon";

• $$artikal=20000;

case sensitive

• Imena varijabli su case sensitive!

• Tako $broj i $Broj nije ista promenljiva

• Imena naredbi, funkcija i klasa u PHP-u nisu case insensitive!

• Tako su funkcije count() i Count() iste

Page 8: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

Pre oše je po vred osti i refere ci • Kao i u d ugi jezi i a i PHP pod ža a p e oše je pa a eta a

po vrednosti i po referenci.

• P e oše je po ed osti z ači da se sad žaj jed e p o e lji e kopi a u d ugu i dalje s aka od jih „ asta lja da ži i sa ostal o i eza is o od d uge

<?php

$a=1; // promenljiva a je dobija vrednost 1

$b=$a; // promnljiva b dobija vrednost promenljive a tj. 1

$a += 2; // promenljiva a dobija vrednost 1+2=3

echo($a); //ispisuje 3

echo($b); //ispisuje 1

?>

Pre oše je po vred osti i refere ci

• P e oše je po referenci z ači da se lokacija u memoriji jedne promenljive dodeljuje drugog, i da obe „gledaju na isto mesto i vide isti sad žaj tj. ed ost. P e oše je po referenci se realizuje operatorom &

<?php

$a=1; // promenljiva a je dobija vrednost 1

$b=&$a; // promnljiva b se upućuje a loka iju a kojoj je promeljiva a i dobija vrednost 1

$a += 2; // promenljiva a dobija vrednost 1+2=3, i to je nova vrednost na lokaciji u memoriji

echo($a); //ispisuje 3

echo($b); //ispisuje 3 jer gleda istu lokaciju koju gleda i a

?>

Konstante

• P o e lji e su oz ake koji a se eka ed ost ože dodeliti i u toku koda promeniti

• Konstantama se vrednost e ože menjati

• Defi išu se velikim slovima i pozivaju bez $

• Za ko sta te se uzi aju o e eliči e koji su sigu o fiks e 8% PDV, . Pi, stepe i tačka leđe ja...

• Reze isa a eč za k ei a je ko sta te je DEFINE

• Primer defi e BROJ-PI , . ;

echo (BROJ-PI);

define( CENASVESKE , 50);

define( SKOLA , Visoka ICT );

Primer

Page 9: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

Tipovi podataka

Tip podataka Opis

Boolean Skalar, True ili False

Integer Skalar, ceo broj

Float Skala , oj koji ože i ati de i ale

String Skalar, grupa karaktera

Array Slože tip, sad ži i e a api a a a vrednosti

Object Slože tip, ože sad žati s ojst a i metode

Resource Spe ijala tip, sad ži efe e e na

spoljne resurse

NULL Spe ijal i tip, ože sad ćati sa o NULL kao vrednosti, a druge vrednosti ne

Funkcije za proveru tipa podatka

• Funkcija kao a gu e t do ija p o e lji u a aća ili ako je tip podatka pot đe ili e.

• Na raspolaganju su:

• is_long(), is_int(), is_integer(), is_double(), is_float(), is_real(), is_numeric()

• is_string()

• is_array, is_object()

• is_resource()

• is_null()

• is_callable – da li je to funkcija

a) String (tekst)

• Stavljanjem pod znake navoda, promenljiva je auto atski postala st i g, ez o zi a a sad žaj

• Primer

$ = Pe a

$ = Pe a Pe i

$ =

$ = .

$z= Pe a Pe i /

Spajanje stringova

• Spajanje je proces dodavanja jednog stinga na neki drugi

• Spaja je se ši sa si olo . (U JavaScript-u je to +)

• Primer

$ = Pe a

$ = Pe i

$z=

$ime= $x. $z. $y

• Spaja je je oguće i k oz ko a du ispisa e ho U Ja aS ipt-u je to document.write)

• Primer

$ = Pe a

$ = Pe i

e ho I e stude ta je: $ , a p ezi e: $

• Duži a st i ga od eđuje se fu k ijo st le

• Primer: echo strlen("Hello world!"); aća

Page 10: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

Funkcije za string-ove Primer funkcija za rad sa stringovima

$st i g = Pe a ide u skolu! ;

$duzinaStringa = strlen($string );

$deoStringaIzaSpace = strstr($string , " ");

$pozicijaKarateraO = strpos($string , "o");

P E R A I D E U S K O L U !

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Primer funkcije substr

<?php

$string = "Pera ide u skolu!"; echo substr($string, 1);

echo substr($string, 2, 6);

echo substr($string, 0, 4);

echo substr($string, -1);

echo substr($string, -3);

echo substr($string, -5, -3);

echo substr($string, -3, 2);

?>

P E R A I D E U S K O L U !

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

-5 -4 -3 -2 -1

Funkcija substr(a,b) vraća deo stringa počev od pozicije a u dužini b

Ukoliko parametar b ne postoji, uzima se ceo string do kraja!

Kriptovanje podataka

• Najčešće ko išće e fu k ije za k ipto a je podataka su md5() i sha1().

• echo d 'p i e ’ ; • 6f9bdde59212bf772c41648d1b2eb072

• <?php $str = 'apple'; if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') { echo "Ovo je apple!"; }

if (sha1($str) === 'd0be2dc421be4fcd0172e5afceea3970e2f3d940') { echo "Ovo je apple!?"; } ?>

Page 11: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

b) Integer (Celobrojni broj)

• S aka p o e lji a čija je ed ost elo oj a eliči a je auto atski od eđe a kao tip Integer

• B oj e ed osti se pišu ez z ako a a oda

• Primer

$x=55

$y=-123

$z=1

c) Double (Racionalni broj)

• S aka p o e lji a čija je ed ost a io al i oj je auto atski od eđe a kao tip Double

• B oj e ed osti se pišu ez z ako a a oda

• Primer

$x=0.55

$y=-2.123

$z=1.0

Primer Funkcije za rad sa brojevima

floor() – aća p i a ji i tige od pos at a og oja

ceil() - aća eći i tige od pos at a og oja

abs() – aća apsolut u ed ost pos at a og oja

sqrt() – aču a je k ad at og ko e a

max() – aća aksi al u ed ost od pos at a ih a gu e ata

min() – aća i i al u ed ost od pos at a ih a gu e ata

pi() – vrednost promenljive pi

rand() – ge e isa je slučaj og oja

rand( int $min , int $max ) - ge e isa je slučaj og oja iz opsega

round() – aća zaok uže u ed ost oja u od osu a .

Page 12: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

Primer rada sa brojevima

Primer

$a = 10.01;

$floor_a = floor($a);

echo $floor_a; // 10

echo abs($a); // 10.1

echo ceil ($a); // 11

$max_value = max(2,3,4); // 4

$min_value = min(2,3,4); // 2

echo pi( ); // 3.14159265359

echo rand() ; // 10260

echo sqrt(22) ; // 4.69041575982

Proste ate atičke operacije

• Operacije koje se mogu koristiti u PHP-u su: • Sabiranje (+)

• Oduzimanje (-)

• M ože je *

• Deljenje (/)

• Moduo (%)

• Primer

$x=55

$y=-2.123

$z=2*($x+ $y) - $y/3

Operatori

• Pored standardnih izdvajaju se sledeći: += $x+=5 $x= $x+5

+= $x+=$y $x= $x+$y

-= $x-=5 $x= $x-10

/= $x/=10 $x= $x/10

*= $x*=10 $x= $x*10

++ $x++ $x = $x +1

-- $x-- $x = $x -1

Logički operatori

Page 13: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

Prioriteti redosleda operacija

• Prioriteti su definisani na nivou jezika i mogu se detaljno pročitati na stranici

• http://php.net/manual/en/language.operators.precedence.php

Konverzije

• PHP auto atski ši ko e ziju podataka u p o esu iz aču a a ja rezultata neke operacije

• Primer:

$x=5

$y=-2.5

$a= P

$z=$x (5,automatski z vidi kao Integer)

$z=$x* $y (-12.5, automatski z vidi kao Double)

• $z=$ * $a , je je p epoz ao oj, a P ig o iše

• U eki d ugi jezi i a o o ije oguće, ego su doz olje e ope a ije eđu isti tipo i a podataka

Konverzije 2

• Ukoliko se ko e zija e iz ši auto atski ože se iz šiti ekspli it o

• S e ko e zije ako je to oguće i aju isti fo at

• $ime_promenljive = (tip u koji se konvertuje) $promenljiva;

• Primer

$cena = (double) $cena;

$novo_ime = (string) $staro_ime;

$vrednost = (integer) $vrednost;

Gettype i settype

• Funkcija gettype() ože da ut di tip p o e lji e

• Primer:

$a=12;

echo gettype($a); // aća ezultat Integer

• Funkcija settype() ože da p o e i tip p o e lji e

• Primer:

$a=12;

settype $a, st i g ; echo gettype($a); // aća ezultat String, a bio je Integer

Page 14: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

isset(), unset() i empty()

• Funkcija isset() se koristi da se proveri da li je promenljiva setovana i nema vrednost NULL

• echo isset($a) aća t ue ako p o e lji a $a postoji sa nekom vrednošću azličito od NULL

• Funkcija empty() se ko isti da se p o e i da li je eka p o e lji a p az a . P o e lji a je p az a ako e postoji ili ako je je sad žaj ekvivalentan sa false.

• ("" (an empty string), 0 (0 as an integer), 0.0 (0 as a float), "0" (0 as a string), NULL, FALSE, array() (an empty array), $var; (a variable declared, but without a value)

• echo empty($a) aća t ue ako ta p o e lji a e postoji, e a seto a sad žaj ili je sad žaj p aza

• Funkcija unset() se ko isti da i se u ištila p o e lji a sa eki i e o i oslobodio prostor u memoriji

• unset($a) iše p o e lji u $a

Primer

<?php

$a;

$b="";

$c=3;

$d= NULL;

if(isset($a)){ echo('Promenljiva a ima vrednost!<br/>');}

else{ echo('Promenljiva a nema vrednost!<br/>');}

if(isset($b)){ echo('Promenljiva b ima vrednost!<br/>');}

else{ e ho 'P o e lji a e a ed ost!< />’ ;}

if(isset($c)){ echo('Promenljiva c ima vrednost!<br/>');}

else{ e ho 'P o e lji a e a ed ost!< />’ ;}

unset($c);

if(isset($c)){ echo('Promenljiva c ima vrednost!<br/>');}

else{ echo('Promenljiva c nema vrednost!<br/>');}

if(isset($d)){ echo('Promenljiva d ima vrednost!<br/>');}

else{ echo('Promenljiva d nema vrednost!<br/>');}

?>

Primer

<?php

$a;

$b="";

$c=3;

$d= NULL;

if(empty($a)){

echo('Promenljiva a je empty!<br/>');}

else{

echo('Promenljiva a nije empty!<br/>');}

if(empty($b)){

echo('Promenljiva b je empty!<br/>');}

else{

echo('Promenljiva b nije empty!<br/>');}

if(empty($c)){

echo('Promenljiva c je empty!<br/>');}

else{

echo('Promenljiva c nije empty!<br/>');}

if(empty($d)){

echo('Promenljiva d je empty!<br/>');}

else{

echo('Promenljiva d nije empty!<br/>');}

?>

Funkcije promenljivih

Page 15: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

var_dump()

• Funkcije var_dump() je vrlo korisna i treba je što p e us ojiti u svakodnevnoj upotrebi

• Ova funkcija prikazuje struktuirane informacije u vezi sa jed o ili iše p o e lji ih ili iskaza koji uključuju tip i vrednost

• Na o aj ači se u s ako t e utku ože p atiti tip i vrednost neke promenljive u toku realizacije koda

var_dump()

<?php

$a="proba";

var_dump($a);

$b=3;

var_dump($b);

var_dump($b*$b);

$c = array(5, 6, array("prvi", "drugi"));

var_dump($c);

?>

d) Nizovi • Niz je slože tip podatka koji u sebi može i ati iše ed osti. • O e ed osti su jed oz ač o aspo eđe e u uta iza kao

elementi niza

• U PHP-u vrednosti niza ne moraju biti istog tipa!

• Elementima niza se pristupa preko njihovih indeksa

• Indeksi niza u PHP-u ogu iti u e ičke ed osti tj. u e ički indeksirani nizovi) ali i stringovi (tj. asocijativni nizovi).

• Ne mora se inicijalno definisati promenljiva tipa niz

• Ne o a se defi isati i i ijal a duži a iza

• Ako se e a ede d ugačije p i ele e t iza i a i deks

• K ei a je iza je oguće: a) Kreiranjem jed og po jed og jego og čla a

$ime_niza[0] = "Pera";

$ime_niza[1] = "Mika";

$ime_niza[2] = "Laza";

b) Kreiranjem celog niza sa podrazumevanim indeksima $ime_niza = array ("Pera", "Mika", "Laza"); //indeksi poči ju od 0

c) Kreiranjem celog niza sa definisanim indeksima $niz1 = array(3=>"Pera",4=>"Mika",5=>"Laza");

d) Kreiranjem asocijativnog niza $ime_niza = array("22"=>"Pera","23"=>"Mika","27"=>"Laza");

$ime_niza = array("prvi"=>"Pera","drugi"=>"Mika","treci"=>"Laza");

$ime_niza = array("ime1"=>"Pera","ime2"=>"Mika","ime3"=>"Laza");

Page 16: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

Primeri kreiranja niza <?php

$niz1 = array ("Pera", "Mika", "Laza");

$niz2 = array(3=>"Pera",4=>"Mika",5=>"Laza");

$niz3 = array("ime1"=>"Pera","ime2"=>"Mika","ime2"=>"Laza");

var_dump($niz1); echo("<br/>");

var_dump($niz2); echo("<br/>");

var_dump($niz3);

?>

Tipovi nizova

• U PHP-u postoje tri vrste niza: • Nu e ički i deks iza je oj

• Aso ijati i i deks iza je eki sad žaj

• Multidi e zio i iz je sasta lje od jed og ili iše izo a

• $ime[0]="Pera"; $ime[1]="Mika"; $ime[2]="Zika";

• $grad['Pera'] = "BG"; $grad['Mika'] = "NS"; $grad['Zika'] = "NI";

$opis = array(

"Pera"=>array("22", "Ozenjen"),

"Mika"=>array("30", "Ozenjen“), "Zika"=>array("40", "Neozenjen“) );

Primeri čita ja niza <?php

$niz1 = array ("Pera", "Mika", "Laza");

for($i = 0; $i < count($niz1); $i++){

echo $niz1[$i],"<br/>";

}

?>

<?php

$niz1 = array ("Pera", "Mika", "Laza");

foreach($niz1 as $ime) {

echo $ime . "<br/>";

}

?>

Primeri čita ja niza <?php

$ime_niza = array("ime1"=>"Pera","ime2"=>"Mika","ime3"=>"Laza");

while($ime=each($ime_niza)){

echo ("Index je: " . $ime['key']);

echo (" Vrednost je: " . $ime['value']);

echo("<br/>");

}

?>

<?php

$ime_niza =

array("ime1"=>"Pera","ime2"=>"Mika","ime3"=>"Laza");

while(list($indeks,$vrednost)=each($ime_niza)){

echo ("Index je: " . $indeks);

echo (" Vrednost je: " . $vrednost);

echo("<br/>");

}

?>

Page 17: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

Sortiranje elemenata niza • Za niz

• $ime_niza[0]= "Pera";

• $ime_niza[2]= "Laza";

• $ime_niza[1]= "Mika";

• Fu k ija so t $i e_ iza so ti a po sad ažaju p o e lji ih

• $ime_niza[0]= "Laza";

• $ime_niza[1]= "Mika";

• $ime_niza[2]= "Pera";

• Fu k ija so t $i e_ iza so ti a po sad ažaju p o e lji ih, u azad

• $ime_niza[0]= "Pera";

• $ime_niza[1]= "Mika";

• $ime_niza[2]= "Laza";

Primer sortiranja vrednosti <?php

$niz=array(1=>"Mika",3=>"Pera",2=>"Laza");

var_dump($niz);

echo("<br/>Sortitao sa sort() je: <br/>");

sort($niz);

var_dump($niz);

echo("<br/>Sortitao sa rsort() je: <br/>");

rsort($niz);

var_dump($niz);

?>

Primer • Za niz

$ime_niza= array ( "a1"=> "Mika", "c1"=> "Pera", "b1"=> "Laza");

• Fu k ija aso t $i e_ iza so ti a po sad ažaju p o e lji ih ali zad ža a s oj i deks, (arsort obrnuto)

• $ime_niza[b1]= "Laza";

• $ime_niza[a1]= "Mika";

• $ime_niza[c1]= "Pera";

Funkcija ksort($ime_niza) sortira po indeksima

• $ime_niza[a1]= "Mika";

• $ime_niza[b1]= "Laza";

• $ime_niza[c1]= "Pera";

Primer sortiranja vrednosti <?php

$niz = array("ime1"=>"Pera","ime3"=>"Mika","ime2"=>"Laza");

var_dump($niz);

echo("<br/>Sortitao sa asort() je: <br/>");

asort($niz);

var_dump($niz);

echo("<br/>Sortitao sa ksort() je: <br/>");

ksort($niz);

var_dump($niz);

?>

Page 18: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

Višedi e zio i iz

• Predstavlja niz nizova

• Ko isti se kada je pot e o ap a iti iše zajed ičkih podataka grupisanih po nekom pravilu

• P i e je d odi e zio o koo di at o oz ača a je i ukazuje na matricu

• Primer: • $ime_niza= array (index => array (sadrzaj));

• $imenik= array("Pera Peric" => array("111-111", "Beograd"), "Mika Mikic" => array("222-222", "Kragujevac"));

Primer <?php

$imenik= array( "Pera Peric" => array("111- , "Beog ad" , "Mika Miki " => array("222-222", "Kragujevac"));

//var_dump($imenik);

echo $imenik["Pera Peric"] [0];

echo $imenik["Pera Peric"][1];

?>

Funkcije za rad sa nizovima Funkcije spajanja i rastavljanja

• Funkcija implode("separator", $ime_niza) od datog niza k ei a st i g tako što edo uzi a jeda po jeda čla

iza i eđuso o ih azd aja sepa ato o

• Funkcija explode("separator", $ime_niza) jedinstveni st i g deli u od osu a sepa ato i aća iz

Page 19: Osnove PHP-a - webdizajn.ict.edu.rs · Visoka l}o strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü W } lY W } lµ vii Ì]lil}i

Primer • Za niz

• $ime_niza[0]= "Pera";

• $ime_niza[2]= "Laza";

• $ime_niza[1]= "Mika";

• Funkcija implode()

$proba1= implode("," , $ime_niza);

echo $proba1; // Pera,Mika,Laza

• Funkcija explode()

$proba2= explode("," , $proba1) daje

echo $proba2[0]; // Pera

echo $proba2[2]; // Laza

echo $proba2[1] // Mika

Funkcija extract()

• Za dati asocijativni niz, pristup elementima niza je: <?php

$student = [

"ime" => "Danijela",

"prezime" => "Nikitin",

"brojInd" => 25 ];

echo "Student: " . $student["ime"] . " " . $student["prezime"];

• Pomoću fu k ije extract aso ijati i iz se lako „deli u p o e lji e koje se automatski nazivaju indeksima niza

<?php

$student = [

"ime" => "Danijela",

"prezime" => "Nikitin",

"brojInd" => 25 ];

extract($student);

echo "Ime studenta: $ime a prezime je: $prezime a broj indeksa $brojInd ;

Prekid rada koda

• P ekid ada tekućeg sk ipta tj. PHP koda se ealizuje po oću exit() ili die()

• Funkcija exit se ože ko istiti ez a gu e ata pa čak i ez zag ada

echo "unable to do!"; exit;

• Ako se ko isti sa a gu e to , ko isti se sa ilje da se p o ispiše g eška i ako toga p eki e dalje iz ša a je koda

$file = fopen $file a e, ' ’ or exit("unable to open file ($filename)");

• Funkcija die() se koristi kao pandam funkcije exit()

die("unable to open file !");

Toliko za sada