Tipovi podataka varijable i opertaori u PHPu Varijable
Tipovi podataka, varijable i opertaori u PHP–u
Varijable • Počinju znakom $ • Pravila kod nazivanja: • Mogu se koristiti velika i mala slova isključivo engleske abecede • Mogu se koristiti i brojke, ali varijabla ne smije započinjati brojkom • Možemo korisiti znak _ , čak i više puta i smije stajati na početku naziva
• Služe za privremenu pohranu vrijednosti, kao što su tekstualni nizovi, brojevi ili polja $var_ime = “vrijednost”; • Kada vrijednost pišemo bez navodnika, znači da je vrijednost broj • S navodnim znakovima je string
• Dobri primjeri imena: $str_ime | $varijabla 2 | $niz[1] | $string[0] • Loši primjeri: $2 varijabla | $var*ijabla | $-var | $var(1) • Imena varijabli su case-sensitive – program razlikuje velika i mala slova; npr: “$mojeime” nije isto što i “$Moje. Ime”
Primjer 1. <? php $txt=“Hello world”; echo $txt; ? >
Primjer 2. <html> <head><title>PHP varijable </title></head> <body> <? php $x=1; $y=2; echo $x + $y; ? > </body> </html>
<html> Primjer 3. <head> <title>PHP varijable</title> <p>A sad ide PHP “drugi </head> otok”: </p> <body> <? php <p>Ovo što slijedi $x=10; je PHP “prvi $y=20; otok”: </p> echo $x + $y; <? php ? > $x=1; </body> $y=2; </html> echo $x + $y; ? >
Komentari • 3 načina – Jednolinijski: nakon //komentar ili #komentar – Višelinijski: između /*komentar*/
Tipovi podataka • U PHP-u ne postoje fiksni tipovi podataka varijabli • 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) • Možete mijenjati tip podataka neke varijable jednog te istog sadržaja
Tipovi podataka • • • Cijeli brojevi (integer) Realni brojevi (floating-point numbers) Tekstualni podaci (String) Nizovi Objekti
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.
Primjer 1. $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 • Dva načina spremanja realnih brojeva: $dbl_var=0. 123; ili $dbl_var=1. 123 e 8;
Tekstualni (string) podaci • Sadržaj string tipa varijable nalazi se između navodnika • Koristimo jednostruke ili dvostruke navodnike • Primjer: <? php $moja_var = "Ovdje je moj tekst"; $moja_var 1 = 'Ovdje je moj tekst'; echo $moja_var; echo „<br/>”; echo $moja_var 1; ? >
String manipulacija u PHP-u • Ukoliko unutar teksta koji ispisujemo unutar jednostrukih navodnika (‘) želimo koristiti ‘ znak moramo ga u kodu napisati s znakom prije (isto tako vrijedi i za dvostruke navodnike) • Znak služi za tzv. izbjegavanje, tj. znak koji iza toga znaka neće biti obrađen nego samo ispisan
Primjer 2. <? php echo 'Ovo je moj tekst i ima u se bi ' znak'; echo "Ovo je moj tekst i ima u seb i " znak"; ? >
• 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 $. • Primjer: <? php $var=4; echo '$var'; echo" "; echo "$var"; ? >
Primjer <? php $str_ime=„Katarina"; echo ("Moje ime je $str_ime"); ? >
Primjer <? php $str_ime=„Katarina"; echo (‘Moje ime je $str_ime’); ? >
Ispis iz PHP-a • echo funkcija – uz funkciju print u PHP-u služi kako bi se dobio ispis vrijednosti na ekran • Možemo ispisivati varijable ili/i tekst direktno <? php $moj_tekst = "Ovo je moj tekst" ; echo $moj_tekst; echo "Ovo je moj tekst"; ? >
Spajanje više stringova u jedan ispis (pomoću ‘. ’) <? php $moj_tekst = “Danas je lijep "; echo $moj_tekst. “dan"; ? >
Primjer <? php $str_var 1=‘Danas'; $str_var 2=‘je'; echo $str_var 1. ' '. $str_var 2. ' lijep dan'; ? >
• Pri radu sa stringovima možemo koristiti znakove [ i ] • Koristimo ih kada želimo izdvojiti određeni znak iz stringa • String zamislimo kao jednodimenzionalni numerički niz indeksiran na taj način da se na svakom broju, počevši od 0, nalazi jedan znak stringa
Primjer <? php $str_tekst=‘Danas je lijep dan'; $str_znak=$str_tekst[0]; echo $str_znak; echo $str_tekst[3]; ? >
strlen funkcija • kao rezultat vraća duljinu stringa • argumenti strlen funkcije strlen(string_ciju_duljinu_trazimo);
Primjer <? php $moj_string = “Danas je"; $duljina_stringa = strlen($moj_ string); echo "String je dugačak $duljin a_stringa znakova"; ? >
strpos funkcija • služi za određivanje pozicije prvog trazenog znaka unutar stringa • argumenti strpos funkcije su: strpos($moj_string, "traženi_string"); ili strpos($moj_string, "traženi_znak", početna_pozicija);
Primjer <? php $moj_string = "ABCDEFGHIJKLMNOP RSTUVZXYPRGTG"; $pozicija = strpos($moj_string, "P"); echo "Pozicija znaka P u mom st ringu je $pozicija"; ? >
Primjer <? php $moj_string = "ABCDEFGHIJKLMNOPRSTU VZXYPRGTG"; $pozicija = strpos($moj_string, "P" ); echo "Pozicija znaka P u mom string u je $pozicija "; $pozicija 2 = strpos($moj_string, "P ", $pozicija+1); echo "Druga Pozicija znaka P u mom stringu je $pozicija 2"; ? >
Nizovi • PHP podržava više vrsta nizova - tekstualne (associative) i cjelobrojne (vectors / indexed). • Mogu biti jednodimenzionalni ili multidimenzionalni. • Funkcija array
Primjer <? php $arr_dani=array(‘ponedjeljak', ‘utorak ', srijeda'); echo $arr_dani[0]; echo $arr_dani[2]; $arr_dani[3]=‘četvrtak'; echo $arr_dani[3]; $arr_dani[2]=‘petak‘; $arr_dani[7]=‘subota‘; ? >
Primjer – ispis svih elemenata <? php foreach ($arr_dani as $int_kljuc => $str_vrijednost) { echo $int_kljuc. " => ". $str_vrijednost. " n"; } ? >
Primjer <? php $arr_ormar=array( “hlače"=>5, “majica"=>8, “pulover"=>2, “jakna"=>3, “trenerka"=>”dva dijela“); echo $arr_ormar[“trenerka"]. " n"; ? >
Primjer – multidimenzionalni niz <? php $arr_boje=array( "tople"=>array("žuta", "crvena"), "hladne"=>array("plava", "zelena") ); // ako želite ispisati npr. žuta echo $arr_boje["tople"][0]. " n"; ? >
Operatori u PHP-u
ARITMETIČKI OPERATORI Primjer Ime Rezultat -$a Negacija od $a $a + $b Zbrajanje Zbroj od $a i $b. $a - $b Oduzimanje Razlika od $a i $b. $a * $b Množenje Produkt od $a i $b. $a / $b Dijeljenje Kvocijent od $a i $b. $a % $b Modul Ostatak dijeljenja od $a i $b.
Operator dodjeljivanja • Klasični = operator, samo što se kao i kod većine programskih jezika ovaj operator ponaša na sljedeći način: $x = $a + $b; /* izvrši operaciju adicije $a i $b i spremi rezultat u $x*/ $z = 23; // spremi vrijednost u $z
Kombinirani operatori • $x += 23; // varijabli $x dodaj 23 i spremi u $x • $y -= $b; • $z *= 2; • $w /= $x - $y; //oprez kod dijeljenja sa 0 • $i %= 10; • $text. = "dodani tekst"; /*ovaj operator na kraj $text stringa dodaje "dodani tekst" i sve opet spremi u $text */ • Ovi operatori su isključivo binarni!
Operator spajanja teksta • Tzv. String operator je. (točka) Primjer: $tekst = "prvi, ". "drugi"; $tekst. = ' i treci'; //što će biti spremljeno u varijabli nakon izvršenja?
OPERATORI PRIDRUŽIVANJA <? $int_var=5; $int_var=$int_var+5; echo $int_var; $int_var+=5; $int_var=$int_var+5; $int_var*=5; $int_var/=10; // kod stringova imamo $str_tekst='Moje ime je '; $str_tekst. =‘Ivana'; ? >
Logički operatori • Koriste se kod pisanja zadanih logičkih uvjeta tj. Izraza kod skretnica toka izvršavanja, npr: ako – neki_log_uvjet- je istinit onda čini sljedeće • Rezultat provjere uvjeta je false (laž) ili true (istina), odnosno 0 ili različito od 0
Logički operatori Primjer Ime Rezultat $a and $b I True ako su oboje $a i $b true. $a or $b Ili True ako je $a true ili ako je $b true. $a xor $b Xor ako je $a true ili ako je $b true, ali ne i ako su oba true. ! $a Ne True ako je $a false i obrnuto. $a && $b I $a || $b Ili True ako su oboje $a i $b true (ekvivalent za „and”). True ako je $a true ili ako je $b true (ekvivalent za „or”).
Napomena • And i or operatori se još zovu operatori nižeg reda jer ako se ne koriste okrugle zagrade () da odvajaju logičke izraze onda = operator ima veću težinu nego “and” i “or” • && i || su potpuni logički operatori koji prvo izvršavaju logički izraz a tek onda dolazi na red operator =
Primjer • "||" ima veći prioritet nad "=" od "or" operatora $g = false || true; /*prvo se izvršava izraz (false || true) što daje true */ $h = false or true; /* u $h se sprema false a "or" se izvršava u prazno*/ • "&&" ima veći prioritet nad "=" od "and" operatora $g = true && false; /*prvo se izvršava izraz (true && false) što daje false*/ $h = true and false; /*u $h se sprema true a "and" se izvršava u prazno*/
Operator odjeljivanja • Okrugle zagrade () • Kao što smo vidjeli u prethodnom primjeru = ima veći prioritet nego or ali manji nego || operator • Ako nam takve stvari rade problem to se rješava upotrebom ovog operatora
Operatori uspoređivanja Primjer Ime Rezultat $a == $b Jednako True ako je $a jednako $b. $a === $b Identično True ako je $a jednako $b, i ako su istog tipa. $a != $b Nije jedanko True ako $a nije jednako $b. $a !== $b Nije identično True ako $a nije jednako $b, i ako nisu istog tipa. $a < $b Manje True ako je $a izričito manje od $b. $a > $b Veće True ako je $izričito veće od $b. $a <= $b Manje jednako True ako je $a manje ili jednako $b. $a >= $b Veće jednako True ako je $a veće ili jednako $b.
Operatori uvećavanja i smanjivanja Primjer Ime Efekt ++$a Preduvećavanje (preinkrement) Uveća $a za jedan, i onda vrati $a. $a++ Naknadno uvećanje (postinkrement) Vrati $a, i onda ga uveća za jedan. --$a Predsmanjenje (predekrement) Umanji $a za jedan, i onda vrati $a. $a-- Naknadno smanjenje (postdekrement) Vrati $a, i onda ga umanji za jedan.
Primjer • 1. primjer $a = 3; $b = $a++; //po završetku ove linije $b će biti 3, a $a 4 • 2. primjer $a = 3; $b = ++$a; //po završetku ove linije $b će biti 4, a $a 4
• 3. primjer $x = 0; $y = $x--; Koji je rezultat pri ispisu $y? • 4. primjer $x = 0; $y = --$x; Što će biti po završetku ove linije (kada ispišemo $y? )
- Slides: 50