osnove php-a - webdizajn.ict.edu.rs · vi soka ãnrod strukovnih studija za informacione i...
Post on 14-Oct-2019
14 Views
Preview:
TRANSCRIPT
Visoka škola strukovnih studija za informacione i komunikacione tehnologije
Beograd
Osnove PHP-a
dr Nenad Kojić
Pre početka…
• Pre početka učenja jezika jako je bitno da se razume značaj dokumentacije jezika i upotreba iste.
• Zvaničan sajt za PHP je http://php.net/
• Na tom sajtu se nalazi dokumentacija, koja pored opšte sintakse i pravila jezika ima veliki broj primera, 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();
?>
Gde i kao se piše PHP kod
• Kod može biti interni ili eksterni.
Za interno napisan kod:
• Stranica može da sadrži: samo php kod, php kod koji je integrisan u HTML ili HTML koji je integrisan u PHP
• U svim slučajevima stranica mora da ima ekstanziju .php
• Ako je stranica samo sa php kodom tada počinje sa <?php i završava se sa ?>
• Ako je HTML kod potrebno integrisati u PHP kod tada se on piše unutar echo().
• Ako je PHP kod potrebno integrisati u većinski HTML, tada se na tom mestu otvara php sekcija sa <?php --- ?>. Ovakvih sekcija unutar jedne HTML strane može biti neograničeno mnogo.
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> <tr><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 može direktno pisati na tekućoj stranici ili “uvesti” kao spoljašnji fajl.
• Funkcija include(), kompletan sadržaj zadatog spoljašnjeg fajla postavlja u stranicu koja je taj kod pozvala.
• Ovaj kod se “kopira” na mesto gde je funkcija include pozvana
• Ovaj deo koda se tada ponaša kao sastavni deo početne stranice
<html> <body> <?php include("header.php");
?> <p> text</p> </body> </html>
Eksterni fajl – include vs require
• Postoje četiri funkcije za učitavanje spoljašnjih fajlova:
• include – učitavanje spoljašnjeg fajla
• include_onse() – učitavanje fajla samo jednom
• require() – isto kao i include() sa razlikom što kod pojave greške (nemogućnosti rada) require() zaustavlja kod, a include samo generiše upozorenje o grešci
• require_onse() – isto kao i require() samo što proverava da li je dati fajl već učitan, pa ako jeste, ne uključuje ga ponovo
Uključivanje datoteka
• Uključivanjem sadržaja spoljašnje datoteke može se u postojeću stranicu dodati tekst ili deo koda
• Naredba za uključivanje datoteke je include – Sintaksa include(“ime_datoteke”); – Primer include(“tekst.txt”)
• Nailaskom na ovaj red koda, ako je u tekst.txt definisan neki tekst, taj tekst bi se uključio u sadržaj stranice, kao da je kreiran u HTML-u
• Ako postoji potreba za više datoteka, onda se prave generička imena koja su slična, i koja se programski mogu pozvati – Primer : Ako postoji 10 datoteka sa imenima tekst1.txt, tekst2.txt,
..., tada se mogu kroz for petlju pozvati kao ime
$brojac=1; include (“tekst”.$brojac.”.txt”);
HTML tagovi <span> i <div>
• Ova dva taga imaju vrlo veliku primenu kada se koristi PHP kod
• Razlog je što se kroz njih najlakše ispisuje sadržaj koji je dobijen od serverskog koda
• Njihovom upotrebom u inicijalnoj stranici, dok im se ne dodeli sadržaj, na mestu koje je za to predviđeno nema ništa
• Dobijanjem nekog podatka od servera, on se prikazuje na prostoru sajta gde se nalazi neki od ovih tagova
• Razlika među njima je veličina polja koja se dobija za ispis
• <span> tag se koristi kada se želi definisati deo teksta koji pripada jednoj liniji
• Ako se želi definisanje veće grupe teksta tada se koristi <div> tag.
Kreiranje template-a
• Kod kreiranja stranica u PHP najčešće se prvo cela struktura organizuje u blokove i regione
• Svaki od blokova/regiona se učitava ponaosob, kreirajući na taj način “podlogu” za dinamič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"; ?> ....
logo <?
require_once "/include/header.html";
?>
<?
require_once
"/include
/meni.html";
?>
Sadržaj
Search
<?
require_once
"/include
/desno.html";
?>
Slika
<?
require_once "/include /header.html";
?>
Upotreba PHP koda
• Za razliku od prethodnog slajda gde se templet-om učitavaju html stranice češće će se učitavati php stranice, koje imaju neku svoju dinamiku (npr. meni iz baze podataka)
• Najčešće se sajt pravi u većinskom HTML kodu, a delovi sajta (divovi), koji su namenjeni nekim sadržajima, su pojedinačni php kodovi
• Na taj način jedna strana sajta je skup više nezavisnih php kodova od kojih svaki ima svoju namenu i dešava se nezavisno od ostalih
• Inicijalna mana PHP koda je što zahteva ponovno učitavanje stranice da bi prikazao sadržaj dobijen radom nekog PHP koda
• Ovaj nedostatak sa ponovnim učitavanjem strane je rešen primenom AJAX tehnologije i sada svaki deo strane, može biti celina za sebe, što daje velike mogućnosti na web-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
• Sve što se nađe unutar funkcije echo ili print se ispisuje korisniku u browser-u (tako što to server prevede u HTML kod). Mogu se koristiti sa ili bez zagrada.
• Na ovaj način se kroz PHP ispisuju i HTML tagovi, kao što se u JavaScript-u to radilo sa
document.write (“nesto”); • Primer
<body> <?php echo ("<p><hr/>"); echo ("Tekst ispisan u PHP-u </p>"); echo ("<br/> Drugi tekst ispisan kroz PHP!"); ?> </body>
<html>
<head>
<title>Moj prvi PHP skript</title>
</head>
<body>
<?php
print (“Zdravo narode!”);
?>
</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;
print “Zdravo \$ime <br>”; // ispisuje Zdravo $ime ******* escaped the variablename
?>
</body>
Primer
Sintaksa PHP jezika
• Svaki iskaz u php-u mora se završiti sa ; • Iza komande dolaze znaci navoda gde se definiše na šta
komanda deluje echo ("Tekst ispisan u PHP-u“);
• Ukoliko je potrebno prikazati znake navoda a da se ne tumač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 jednoredne i stavljaju se na početak svakog pojedinačnog reda, dok su druga dva za početak i kraj višerednih komentara
• Pored klasičnog ispisivanja komandom echo postoje i specijalni znaci koji ostavljaju dodatne mogućnosti
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
Komentari <?php
echo "Zdravo, svete!<br>"; // Ovo je komentar u jednom redu
// u stilu jezika C++
/* Ovo je blok komentara
u više redova. */ echo "Zdravo, još jednom.<br>";# Ovo je komentar u stilu
# komandnih okruženja Unixa
?>
<?php
/* Sledeći red će ispisati, "Ovo neće
ispisati ništa." */
?>
Ovo neće ispisati <?php # echo "nešto"; ?> ništa.<br>
Ispis grupe tagova pomoću echo()
Ispis Java script koda pomoću echo()
Ispis Java script koda pomoću echo()
Promenljive u PHP-u
• Počinju rezervisanim simbolom $, nakon čega ide ime promenljive, koja počinje 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 dinamičke promene sadržaja može realizovati i dinamička promena imena promenljive (identifikator)
• Ako se promenljivoj telefon dodeli vrednost 20000 imamo:
– $telefon=20000;
• ali se isto mož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
Prenošenje po vrednosti i referenci
• Kao i u drugim jezicima i PHP podržava prenošenje parametara po vrednosti i po referenci.
• Prenošenje po vrednosti znači da se sadržaj jedne promenljive kopira u drugu i dalje svaka od njih „nastavlja da živi samostalno i nezavisno od druge“ <?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
?>
Prenošenje po vrednosti i referenci
• Prenošenje po referenci znači da se lokacija u memoriji jedne promenljive dodeljuje drugog, i da obe „gledaju“ na isto mesto i vide isti sadržaj tj. vrednost. Prenošenje po referenci se realizuje operatorom & <?php
$a=1; // promenljiva a je dobija vrednost 1
$b=&$a; // promnljiva b se upućuje na lokaciju na 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
• Promenljive su oznake kojima se neka vrednost može dodeliti i u toku koda promeniti
• Konstantama se vrednost ne može menjati
• Definišu se velikim slovima i pozivaju bez $
• Za konstante se uzimaju one veličine koji su sigurno fiksne (18% PDV, 3.14 Pi, 0 stepeni tačka leđenja...)
• Rezervisana reč za kreiranje konstante je DEFINE
• Primer
define(“BROJ-PI”, 3.14); echo (BROJ-PI);
define(“CENASVESKE”, 50);
define(“SKOLA”, “Visoka ICT”);
Primer
Tipovi podataka
Tip podataka Opis
Boolean Skalar, True ili False
Integer Skalar, ceo broj
Float Skalar, broj koji može imati decimale
String Skalar, grupa karaktera
Array Složen tip, sadrži imena mapirana na vrednosti
Object Složen tip, može sadržati svojstva i metode
Resource Specijalan tip, sadrži reference na spoljne resurse
NULL Specijalni tip, može sadrćati samo NULL kao vrednosti, a druge vrednosti ne
Funkcije za proveru tipa podatka
• Funkcija kao argument dobija promenljivu a vraća 0 ili 1 ako je tip podatka potvrđen ili ne.
• 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 automatski postala string, bez obzira na sadržaj
• Primer
$x=“Pera” $x1=“Pera Peric” $y=“5” $y1=“5.25” $z=“Pera Peric 225/25”
Spajanje stringova
• Spajanje je proces dodavanja jednog stinga na neki drugi
• Spajanje se vrši sa simbolom . (U JavaScript-u je to +)
• Primer
$x=“Pera” $y=“Peric” $z=“ ” $ime= $x. $z. $y
• Spajanje je moguće i kroz komandu ispisa echo (U JavaScript-u je to document.write)
• Primer
$x=“Pera” $y=“Peric” echo “Ime studenta je: $x , a prezime: $y” • Dužina stringa određuje se funkcijom strlen
– Primer: echo strlen("Hello world!"); vraća 12
Funkcije za string-ove
Primer funkcija za rad sa stringovima
$string = “Pera 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 korišćene funkcije za kriptovanje podataka su md5() i sha1().
• echo md5('primer’); • 6f9bdde59212bf772c41648d1b2eb072
• <?php
$str = 'apple'; if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') { echo "Ovo je apple!"; }
if (sha1($str) === 'd0be2dc421be4fcd0172e5afceea3970e2f3d940') { echo "Ovo je apple!?"; } ?>
b) Integer (Celobrojni broj)
• Svaka promenljiva čija je vrednost celobrojna veličina je automatski određena kao tip Integer
• Brojne vrednosti se pišu bez znakova navoda
• Primer $x=55
$y=-123
$z=1
c) Double (Racionalni broj)
• Svaka promenljiva čija je vrednost racionalni broj je automatski određena kao tip Double
• Brojne vrednosti se pišu bez znakova navoda
• Primer $x=0.55
$y=-2.123
$z=1.0
Primer
Funkcije za rad sa brojevima
floor() – vraća prvi manji intiger od posmatranog broja
ceil() - vraća veći intiger od posmatranog broja
abs() – vraća apsolutnu vrednost posmatranog broja
sqrt() – računanje kvadratnog korena
max() – vraća maksimalnu vrednost od posmatranih argumenata
min() – vraća minimalnu vrednost od posmatranih argumenata
pi() – vrednost promenljive pi
rand() – generisanje slučajnog broja
rand( int $min , int $max ) - generisanje slučajnog broja iz opsega
round() – vraća zaokruženu vrednost broja u odnosu na .5
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 matematičke operacije
• Operacije koje se mogu koristiti u PHP-u su: – Sabiranje (+)
– Oduzimanje (-)
– Množenje (*) – 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
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 automatski vrši konverziju podataka u procesu
izračunavanja rezultata neke operacije
• Primer: $x=5
$y=-2.5
$a=“12P”
$z=$x (5,automatski z vidi kao Integer)
$z=$x* $y (-12.5, automatski z vidi kao Double)
• $z=$x* $a (60, jer je prepoznao broj, a P ignoriše)
• U nekim drugim jezicima ovo nije moguće, nego su dozvoljene operacije među istim tipovima podataka
Konverzije 2
• Ukoliko se konverzija ne izvrši automatski može se izvršiti eksplicitno
• Sve konverzije (ako je to moguće) imaju isti format
• $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() može da utvrdi tip promenljive
• Primer: $a=12;
echo gettype($a); // vraća rezultat Integer
• Funkcija settype() može da promeni tip promenljive
• Primer: $a=12;
settype($a, “string”); echo gettype($a); // vraća rezultat String, a bio je Integer
isset(), unset() i empty() • Funkcija isset() se koristi da se proveri da li je promenljiva setovana
i nema vrednost NULL
• echo isset($a) vraća true ako promenljiva $a postoji sa nekom vrednošću različitom od NULL
• Funkcija empty() se koristi da se proveri da li je neka promenljiva “prazna”. Promenljiva je prazna ako ne postoji ili ako je njen sadrž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) vraća true ako ta promenljiva ne postoji, nema setovan sadržaj ili je sadržaj “prazan”
• Funkcija unset() se koristi da bi se uništila promenljiva sa nekim imenom i oslobodio prostor u memoriji
• unset($a) briše promenljivu $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{ echo('Promenljiva b nema vrednost!<br/>’);} if(isset($c)){ echo('Promenljiva c ima vrednost!<br/>');} else{ echo('Promenljiva c nema vrednost!<br/>’);} 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
var_dump()
• Funkcije var_dump() je vrlo korisna i treba je što pre usvojiti u svakodnevnoj upotrebi
• Ova funkcija prikazuje struktuirane informacije u vezi sa jednom ili više promenljivih ili iskaza koji uključuju tip i vrednost
• Na ovaj način se u svakom trenutku može pratiti 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žen tip podatka koji u sebi može imati više
vrednosti.
• Ove vrednosti su jednoznačno raspoređene unutar niza 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 mogu biti numeričke vrednosti (tj. numerički indeksirani nizovi) ali i stringovi (tj. asocijativni nizovi).
• Ne mora se inicijalno definisati promenljiva tipa niz
• Ne mora se definisati inicijalna dužina niza
• Ako se ne navede drugačije prvi element niza ima indeks 0
• Kreiranje niza je moguće: a) Kreiranjem jednog po jednog njegovog člana
$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činju 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");
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: – Numerički (indeks niza je broj) – Asocijativni (indeks niza je neki sadržaj) – Multidimenzioni (niz je sastavljen od jednog ili više nizova)
• $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 čitanja 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/>"; } ?>
<?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/>"); } ?>
Primeri čitanja niza
Sortiranje elemenata niza • Za niz
– $ime_niza[0]= "Pera";
– $ime_niza[2]= "Laza";
– $ime_niza[1]= "Mika";
• Funkcija sort($ime_niza) sortira po sadražaju promenljivih
– $ime_niza[0]= "Laza";
– $ime_niza[1]= "Mika";
– $ime_niza[2]= "Pera";
• Funkcija rsort($ime_niza) sortira po sadražaju promenljivih, unazad
– $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");
• Funkcija asort($ime_niza) sortira po sadražaju promenljivih ali zadržava svoj indeks, (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);
?>
Višedimenzioni niz
• Predstavlja niz nizova
• Koristi se kada je potrebno napraviti više zajedničkih podataka grupisanih po nekom pravilu
• Primer je dvodimenziono koordinatno označavanje 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-111“ , "Beograd"), "Mika Mikic" => 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 kreira string tako što redom uzima jedan po jedan član niza i međusobno ih razdvaja separatorom
• Funkcija explode("separator", $ime_niza) jedinstveni string deli u odnosu na separator i vraća niz
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 funkcije extract() asocijativni niz se lako „deli“ u promenljive 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 • Prekid rada tekućeg skripta tj. PHP koda se realizuje pomoću exit() ili die()
• Funkcija exit() se može koristiti bez argumenata pa čak i bez zagrada
…
echo "unable to do!"; exit;
• Ako se koristi sa argumentom, koristi se sa ciljem da se prvo ispiše greška i nakon toga prekine dalje izvršavanje koda
$file = fopen($filename, 'r’) or exit("unable to open file ($filename)");
• Funkcija die() se koristi kao pandam funkcije exit()
die("unable to open file !");
Toliko za sada
top related