BAZA TE KODIMIT NE PHP Variablat •Konstantet •Strukturat e kontrollit •Ciklet •Tabelat (Arrays) • Leksion 8 Taget e Fillimit dhe te Mbarimit te PHP-se Tagu i fillimit (start tag) <?php Tagu i mbarimit (end tag) ?> <? ?> <script language="php"> </script> Taget e shkurtra (1) <? print “This is an example!”; ?> Taget e shkurtra mund te perdoren per lehtesi ne vend te tageve <?php ... ?> Per t’i perdorur ate duhet te aktivizohet direktiva short_open_tag e PHP-se Kujdes: Taget e shkurtra konfliktojne me XML, pra edhe me XHTML, prandaj nuk jane te pershtatshem qe te perdoren me to. Taget e shkurtra (2) Gjithashtu, per lehtesi mund te perdoret edhe sintaksa e qarkut te shkurter (short-circuit syntax): <?= “This is another PHP example”; ?> Ky funksionalitet eshte ekuivalent me variantet e meposhtme <? echo “This is another PHP example”; ?> <?php echo “This is another PHP example”; ?> Komentet Mund te perdorim disa lloje komentesh ne PHP: Sintaksa Single-Line C++ <?php // Title: My first PHP script ?> Sintaksa Shell <?php # Title: My first PHP script ?> Sintaksa Multiple-Line C <?php /* Title: My first PHP script Author: Jason */ ?> Perfunduesi i instruksioneve Ne PHP, perfunduesi i instruksioneve eshte pikepresja (;), e cila duhet te vendoset patjeter ne fund te çdo komande. Perfunduesi i instruksioneve i tregon parserit te PHP-se "Mbarova pune me kete komande, vazhdo me tjetren". Nese nuk vendoset pikepresja, parseri i PHP-se do te ngaterrohet dhe kodi do te shfaqe gabime. Outputi i te dhenave ne Browser (1) print() Prototipi: int print(argument) Shembuj: <?php print(“<p> I love the summertime .</p> ”); ?> <?php $season = “summertime”; print(“<p> I love the $season.</p> ”); ?> <?php print(“<p> I love the summertime .</p> ”); ?> Te gjithe shembujt e mesiperm prodhojne te njejtin output: I love the summertime. Outputi i te dhenave ne Browser (2) echo() Prototipi: void echo(string argument1 [, ...string argumentN]) Shembull: <?php $heavyweight = “Lennox Lewis”; $lightweight = “Floyd Mayweather”; echo $heavyweight, “and”, $lightweight, “ are great fighters.”; ?> Ky kod afishon: Lennox Lewis and Floyd Mayweather are great fighters. Outputi i te dhenave ne Browser (3) Cili eshte me i shpejte echo() apo print()? echo() eshte pak me i shpejte sepse ky funksion nuk kthen asgje, ndersa print() kthen 1 nese shprehja eshte afishuar me sukses. Megjithate ndryshimi eshte pothuajse i paperfillshem. Outputi i te dhenave ne Browser (4) printf() Prototipi: boolean printf(string format [, mixed args]) Shembull: <?php printf(“Bar Inventory: %d bottles of tonic water.”, 100); ?> Ky kod afishon: Bar Inventory: 100 bottles of tonic water. Ne kete shembull , %d eshte nje placeholder (mbajtes pozicioni) i njohur si percaktues tipi (type specifiers) dhe d tregon se ne ate pozicion do te vendoset nje vlere integer. Pra aty pritet te vendoset nje integer, keshtu qe nese i kalohet si argument nje vlere dhjetore (float), ajo do te rrumbullakoset ne numrin e plote me te afert. Psh, nese i kalohet 100.2 si argument, do te afishohet 100. Outputi i te dhenave ne Browser (5) Percaktues te dhenash qe perdoren zakonisht Tipi Pershkrimi %b Argumenti konsiderohet si integer; paraqitur si nje numer binar %c Argumenti konsiderohet si integer; paraqitur si nje karakter qe i korrespondon asaj vlere ACSII %d Argumenti konsiderohet si integer; paraqitur si nje numer decimal me shenje %f Argumenti konsiderohet si numer floating-point; paraqitur si nje numer floating-point %o Argumenti konsiderohet si integer; paraqitur si nje numer oktal %s Argumenti konsiderohet si string; paraqitur si nje string %u Argumenti konsiderohet si integer; paraqitur si nje numer dhjetor pa shenje %x Argumenti konsiderohet si integer; paraqitur si nje numer hexadecimal lowercase %X Argumenti konsiderohet si integer; paraqitur si nje numer hexadecimal uppercase Outputi i te dhenave ne Browser (6) Shembuj: printf (“%d bottles of tonic water cost $%f”, 100, 43.20); Ky kod afishon: 100 bottles of tonic water cost $43.20 Kur punoni me vlerat dhjetore, mund te rregulloni precizionin duke perdorur percaktues precizioni si me poshte: printf (“$%.2f”, 43.2); // afishon $43.20 Outputi i te dhenave ne Browser (7) sprintf() Prototipi: string sprintf(string format [, mixed arguments]) Shembull: $cost = sprintf(“$%.2f”, 43.2); // $cost = $43.20 sprintf() eshte identike ne funksionalitet me printf(), vetem se outputi i tij mund t’i jepet si vlere nje stringu ne vend qe te afishohet ne browser. Perfshirja e skedareve te jashtem PHP ka 4 funksione qe ju mundesojne qe te shtoni kod nga skedare te jashtem: include() require() include_once() require_once() • PSh: include("table2.php"); – Perfshin skedarin table2.php brenda skriptit tone Tipet e te dhenave ne PHP (1) Ne PHP mund te krijoni dy tipe variablash: skalar dhe te perbere (compound). Variablat skalare permbajne vetem nga nje vlere ne nje kohe. Ketu hyjne tipet Boolean, Integer, Float(Double), String Ndersa variablat e perbere lejojne qe shume elementet te te njejtit tip te grupohen ne nje entitet te vetem perfaqesues. Ketu hyjne tipet Array dhe Object. Tipet e te dhenave ne PHP (2) Kur i jepni nje vlere nje variabli, ju zakonisht i jepni nje vlere te njerit prej tipeve te meposhtme: Boolean Suporton dy vlera true/false. Mund te perdoret 0 per te paraqitur false dhe çdo vlere tjeter jozero per true. Integer Numra te plote, si psh: 1, 345, and 9922786. Gjithashtu mund te perdorni sistem oktal dhe hekzadecimal: Psh numri oktal 0123 eshte 83 ne sistem dhjetor dhe numri ne hekzadecimal 0x12 eshte 18 ne sistem dhjetor. Floating-point numbers ("floats" ose "doubles") Numra me presje dhjetore, si psh: 1.5, 87.3446, and 0.88889992. String Informacion tekst dhe/ose numerik, i percaktuar brenda thonjezave dyshe (" ") ose teke (' '). Tipet e te dhenave ne PHP (3) Tipet e te dhenave nuk percaktohen nga programuesi, por vete PHP-ja kur interpreton faqen web, vendos se çfare tipi te dhenash duhet te jete nje variabel dhe i jep vleren perkatese. Kur te shkruani skriptin tuaj ne PHP, duhet te percaktoni me kujdes variablat dhe emrat e variablave dhe te perdorni komente ne kod, qe t’ju kujtojne tipet e vlerave qe u keni dhene variablave. Tipi i te dhenave String – – Nje string eshte nje sekuence shkronjash, simbolesh, karakteresh dhe vlerash aritmetike ose nje kombinim i tyre, te vendosura brenda thonjezave teke ose çifte Shembull: <?php $sum = 20; echo 'the sum is: $sum'; echo "<br />"; echo "the sum is: $sum"; echo "<br />"; echo '<input type="text" name="first_name" id="first_name">'; ?> – – Kur stringu eshte i vendosur brenda thonjezave çifte, sekuenca te tilla si /n ose /r interpretohen dhe variablat zevendesohen, ndersa nese stringu eshte brenda thonjezave teke, nje gje e tille nuk ndodh. Stringjet qe jane ne thonjeza çifte mund te vendosen ne disa rreshta. Bashkimi i stringjeve (1) • • Operatori i bashkimit te stringjeve (.) perdoret per te lidhur dy vlera string se bashku. Shembull: <?php $txt1="Hello Everyone,"; $txt2="1234 is Dan’s home address"; echo $txt1.$txt2; ?> Bashkimi i stringjeve (2) Ne PHP ka edhe nje menyre per bashkim stringjesh, duke perdorur komanden echo() $TipMakine = "Cadillac"; echo "$TipMakine "; Ky kod afishon Cadillac. Megjithate, kjo na jep mundesine per te perdorur emrat e variablave brenda tekstit per te bashkuar tekstin. Psh: echo "Duke's $TipMakine "; Ky kod afishon Duke's Cadillac. Bashkimi i stringjeve (3) echo 2 . 2; echo 2.2; Keto dy komanda duket sikur afishojne te njejten gje, por rezultati i tyre eshte perkatesisht 22 dhe 2.2 Rasti i pare konsiderohet si bashkim stringjesh ndersa i dyti si afishim i numrit 2.2 Heqja e kuptimit te karaktereve te veçanta (escape) Duhet te keni kujdes gjithashtu te hiqni kuptimin e karaktere te veçanta siç jane psh thonjezat çifte. Kur perdorni thonjeza çifte, secila nga thonjezat duhet te paraprihet nga karakteri (\) (i njohur edhe si nje backslash). Shembull i nje kodimi te gabuar echo "<P>I think this is really "cool"!</P>"; Kodimi i sakte: echo "<P>I think this is really \"cool\"!</P>"; Tipi Array Nje vektor (array) perkufizohet si nje bashkesi e indeksuar e vlerave te te dhenave. Shembull: Per te ndertuar nje liste te shteteve te SHBA-se, mund te perdoret nje vektor: $state[0] = “Alabama”; $state[1] = “Alaska”; $state[2] = “Arizona”; ... $state[49] = “Wyoming”; Tipi Object Ndryshe nga tipet e tjera te te dheanve ne PHP, nje object duhet te deklarohet ne menyre eksplicite. Ky deklarim ndodh brenda nje klase. Shembull: class Appliance { private $_power; function setPower($status) { $this->_power = $status; } } Krijimi i nje objekti te kesaj klase: $blender = new Appliance; $blender-> setPower(“on”); Variablat Ne PHP te gjithe variablat fillojne me shenjen $ , ndersa per t’i dhene nje vlere variablit, perdoret shenja e barazimit “=”, psh: $author = "William Shakespeare"; $number_of_digits_on_one_hand = 5; Per te paraqitur ne ekran vleren e variablit perdoret komanda echo(), si psh: echo $author; Kufizimet ne emrat e variablave (1) Madhesia e emrit te variablit, nuk eshte e kufizuar ne PHP. Te gjithe emrat e variablave duhet te fillojne me nje shkronje ose underscore (duke mos marre parasysh ketu shenjen e dollarit, e cila nuk eshte pjese strikte e emrit te variablit). Emrat e variablave duhet te ndertohen nga numra, shkronja dhe underscore. Karaktere te tjera +,- , *, dhe & nuk lejon dhe do te shkaktojne gabime ne faqen web. Emrat e variablave duhet te fillojne me shkronje ose me underscore, e jo me numer. Kufizimet ne emrat e variablave (2) Pavaresisht nga keto, ju jeni te lire t’i vendosni emra variablave si te doni, megjithese e mira eshte qe emrat e variblave te kene kuptim. Gjithashtu emrat e variablave jane case-sensitive, (psh variablat $author dhe $Author nuk jane njelloj) Shembull – Krijimi i variablave dhe afishimi i vlerave te tyre <HTML> <BODY> <?php $actor = "Marlon Brando"; echo $actor; ?> </BODY> </HTML> Kodi i mesiperm afishon Marlon Brando, ne browser Vereni qe po te ishte shkruar echo "$actor"; rezultati do te ishte perseri i njejte. Ndersa echo ‘$actor’ (ne thonjeza teke), do te afishonte $actor, sepse nuk interpretohet vlera e variablit Fusha e veprimit te variablave dhe jetegjatesia e tyre • Shembull: Fusha e veprimit te nje variabli te percaktuar brenda nje funksioni eshte lokale per ate funksion. Nje variabel i percaktuar ne trupin kryesor te kodit ka nje fushe veprimi globale. Nese nje funksioni i duhet te perdore nje variabel qe eshte i percaktuar trupin kryesor te kodit, duhet t’i referohet atij variabli duke perdorur fjalen kyçe "global” <?php function mul() { global $start; print "<tr>"; for ($num=1; $num <= 10; $num++ ) { $cell = $num * $start; print "<td> " . $cell . " </td>"; } print "</tr>"; } $start = 0; print "<table border=1 cellpadding=3>"; while ( $start <=10 ) { mul(); $start++; } print "</table>"; ?> Konvertimi i tipeve te variablave (1) PHP ka nje bashkesi funksionesh te veta, qe ju ndihmojne jo vetem qe te konvertoni variablat nga nje tip ne tjetrin, por edhe te percaktoni saktesisht se çfare tipi ka caktuar vete PHP-ja per nje variabel. PHP ju kursen shume pune sepse e kryen vete procesin e konvertimit, ne ndryshim nga shume gjuhe te tjera programimi, qe zakonisht lejojne te kryhen veprime vetem ndermjet variablave te te njejtit tip. Shembull: $EngineType = "2.0L" $TaxRate = 3 $TaxPaid = $EngineType * $TaxRate Ketu vlera e variablit $TaxPaid eshte 6. Konvertimi i tipeve te variablave (2) Deri tani konvertimin e tipeve te variablave e ka kryer PHP-ja, por kete mund ta kryejme edhe ne nese duam ta percaktojme vete tipin kur e krijojme nje variabel. Per kete mjafton qe t’i japim si vlere variablit vetveten dhe te percaktojme tipin e te dhenave brenda kllapave, si me poshte: $NewVariable = 13; $NewVariable = (string) $NewVariable; Ky proces njihet me emrin Konvertim (Type Casting) Nese eshte e nevojshme mund ta kthejme ate perseri ne tipin qe kishte: NewVariable = 13; $NewVariable = (string) $NewVariable; $NewVariable = (integer) $NewVariable; Konvertimi i tipeve te variablave (3) Funksioni gettype Per te percaktuar tipin e variablit, PHP ka nje funksion qe quhet gettype(), ku brenda kllapave duhet te vendoset emri i variablit, si me poshte: gettype($number); Shembull: $number = 5; echo gettype($number); Ky kod afishon integer ne faqen web. Konvertimi i tipeve te variablave (4) Funksioni settype Funksioni settype na lejon te percaktojme tipin e varialbit. Ai merr si parametra variablin dhe tipin e te dhenave qe duam te caktojme per kete variabel, si me poshte: $number=10; settype($number, "string"); Per te treguar qe tipi ka ndryshuar mund te therrasim perseri funksionin gettype echo gettype($number); Tashme ky kod afishon fjalen string. Konvertimi i tipeve te variablave (5) Funksioni isset() Ky funksion na lejon te kontrollojme nese eshte krijuar apo jo nje variabel me nje emer te caktuar. Ai merr si argument vetem emrin e variablit: echo isset($number); Ky kod do te afishonte numrin 1 nese do te ekzistonte tashme nje variabel me emrin $number , perndryshe nuk do te kthente ndonje vlere, madje as zero. Konvertimi i tipeve te variablave (6) Funksioni unset() Perdoret per te shkaterruar plotesisht nje variabel dhe te liroje hapesiren qe ai zinte ne memorie. Edhe ai merr si argument emrin e variablit: unset($number); Gjithsesi perpara se te therrisni kete funksion duhet te siguroheni qe kjo eshte vertete ajo qe kerkojme te bejme sepse edhe emri, edhe vlera e variablit do te shkaterrohen kur thirret ky funksion. Konvertimi i tipeve te variablave (7) Funksioni empty() Eshte i kunderti logjik i funksionit isset(). Ai perdoret njelloj si isset(), dhe kthen 1 nese nuk ka variabel $number, ose nese variabli $number eshte i barabarte me 0 ose "" (stringu bosh), si dhe nuk kthen asgje nese ky variabel ekziston: echo empty($number); Variablat e paracaktuar Ne te gjithe skriptet PHP, mund te perdorni nje bashkesi variablash te paracaktuar. Mund t’i keni pare disa nga keto variabla ne outputin e funksionit phpinfo(). Disa nga keta variabla, quhen superglobale, qe do te thote se ata jane gjithmone prezente dhe mund te perdoren tek te gjithe skriptet tuaja, pa ndonje nderhyrje nga ana juaj si programues Shembuj Variablash te paracaktuar $_GET permban çdo variabel qe i jepet skriptit nepermjet metodes GET. $_POST permban çdo variabel qe i jepet skriptit nepermjet metodes POST. $_COOKIE permban çdo variabel qe i jepet skriptit nepermjet nje cookie. $_FILES permban çdo variabel qe i jepet skriptit nepermjet upload-imit te fileve. $_ENV permban çdo variabel qe i jepet skriptit si pjese e mjedisit te serverit. $_SESSION permban çdo variabel qe eshte i rregjistruar ne sesion. Variablat e mjedisit (1) Variablat e mjedisit (te quajtur ndryshe edhe variablat e PHP-se) jane variabla qe jane vendosur jashte skripteve PHP, por mund te kapen brenda çdo skripti PHP. Keto variabla zakonisht permbajne informacion rreth transaksioneve klient-server. Ato mund te jene informacione rreth kerkeses dhe pergjigjes HTTP, dhe marrin te njejtin format si variablat qe krijojme ne vete, meqe edhe ato fillojne me shenjen $. I vetmi ndryshim eshte se ato jane krijuar qe me pare dhe nuk kane nevoje per nderhyrje te perdoruesit. Ato mund t’i shohim duke perdorur phpinfo() Variablat e mjedisit (2) $_SERVER["HTTP_USER_AGENT"] permban tipin e browserit te perdoruesit. echo $_SERVER["HTTP_USER_AGENT"]; Mund te perdorim vleren e ketij variabli ne programet tona dhe t’i bejme ato te posaçem per nje browser, apo per nje bashkesi browserash te caktuar. Variabli $_SERVER[" HTTP_FROM"] permban adresen email te perdoruesit, qe ben kerkesen. $_SERVER[" HTTP_ACCEPT "] permban nje liste te tipeve te mediave qe mund te pranoje browseri i perdoruesit. $_SERVER[" REMOTE_ADDR "] permban adresen IP te kompjuterit qe po ben kerkesen. Variablat e mjedisit (3) Per te qene te sigurte qe po lexoni vleren e duhur, mund te perdorni edhe funksionin getenv() per t’ia dhene si vlere nje variabli tjeter te krijuar prej jush. Ne shembullin e meposhtem eshte perdorur ky funksion, per t’i dhene variablit $address vleren e variblit te mjedisit $REMOTE_ADDR <? $address = getenv("REMOTE_ADDR"); echo "Your IP address is $address."; ?> Ndryshimi ndermjet variablave te mjedisit dhe konstanteve te paracaktuara ne PHP eshte se ne vete mund te ndryshojme ose mund te ndikojme ne permbajtjen e ketyre variablave. Megjithate ato jane ndertuar me teper qe t’i perdorim si reference sesa t’i ndryshojme vleren. Deklarimi i konstaneteve (1) Nje konstante eshte nje identifikues per nje vlere qe nuk mund te ndryshoje gjate rrjedhes se nje skripti. Kur nje konstante merr nje vlere, ajo e ruan ate vlere gjate gjithe jetes se ekzekutimit te saj. Konstantet mund te jene te percaktuara nga perdoruesi, ose konstante te paracaktuara qe PHP i ka ne dispozicion gjithmone. Deklarimi i konstaneteve (2) Deklarimi i konstaneteve behet duke perdorur funksionin define() si meposhte: <?php define("EXAMPLE", 5); echo EXAMPLE; ?> Deklarimi i konstaneteve (3) Ketu deklarohet nje konstante EXAMPLE dhe i jepet vlera 5. Vereni qe kjo konstante nuk paraprihet nga shenja e dollarit $, sepse kjo shenje perdoret vetem nga variablat e jo nga konstantet. Konstantet nuk mund te rideklarohen, pra nuk mund t’u ndryshohet vlera pasi eshte percaktuar nje vlere per to, prandaj edhe quhen konstante. Shembuj konstantesh te paracaktuara __FILE__ Emri i skedarit te skriptit qe po parsohet __LINE__ Numri i rreshtit ne skriptin qe po parsohet PHP_VERSION Version i PHP-se qe po perdoret. PHP_OS Sistemi i shfrytezimit qe perdor PHP. Operatoret Funksioni baze i nje operatori eshte qe te beje diçka me vleren e nje variabli. Kjo “diçka” mund te jete dhenie e nje vlere, ndryshim i nje vlere, ose krahasim i dy ose me shume vlerave. Tipet kryesore te Operatoreve ne PHP Operatoret e Vleredhenies. I japin vlere variablave. Munden gjithashtu te shtojne ose te zbresin nga vlera aktuale e nje variabli. Operatoret Aritmetike. Mbledhje, zbritje, shumezim, pjesetim Operatoret e krahasimit. Krahasojne dy vlera dhe kthejne true ose false (vertete ose gabuar). Me pas mund te kryeni veprime bazuar ne vleren e kthyer. Operatoret Logjike. Percaktojne gjendjen e kushteve Operatoret e Vleredhenies Operatori Shembull Veprimi += $a += 3; Ndryshon vleren e nje variabli ne vlere aktuale plus vleren ne anen e djathte. -= $a -= 3; Ndryshon vleren e nje variabli ne vlere aktuale minus vleren ne anen e djathte. .= $a .= "string"; Bashkon vleren ne te djathte me vleren aktuale Operatoret Aritmetike Operator Shembull Veprimi + $b = $a + 3; Mbledh vlerat - $b = $a - 3; Zbret Vlerat * $b = $a * 3; Shumezon Vlerat / $b = $a / 3; Pjeston Vlerat % $b = $a % 3; Kthen modulin (mbetjen e pjestimit) Shembuj te Operatoreve aritmetike $Bread = 1.5 $Milk = 0.8 $DiscountCoupon = 0.5 $ShoppingTotal = $Bread + $Milk - $DiscountCoupon; Mbledhja e variablave $ShoppingTotal = $ShoppingTotal + $Bread; $ShoppingTotal = $ShoppingTotal + 1; $ShoppingTotal++; $ShoppingTotal += 2; $ShoppingTotal = $ShoppingTotal + 2; Operatoret aritmetike PHP ka edhe operatore te tjere aritmetike, perveç atyre qe permendem. Ka nje bashkesi funksionesh PHP, per te kryer veprime si llogaritje te funksioneve trigonometrike apo logaritmesh. Prioriteti i operatoreve Ne matematike BODMAS eshte akronimi qe perdoret per t’ju kujtuar rendin e prioritetit te operatoreve. BODMAS (Brackets, Division, Multiplication, Addition, and Subtraction). (), /, *, +, - Shembull <HTML> <BODY> <?php $Salary = 15000; $TaxRate = 20; $Pension = 3; $BeforePensionIncome = $Salary - (($Salary / 100) * $TaxRate); $AfterPensionIncome = $BeforePensionIncome (($BeforePensionIncome/100)*$Pension); echo "Before Pension Deductions:$BeforePensionIncome<BR>"; echo "After Pension Deductions:$AfterPensionIncome"; ?> </BODY </HTML> Shembull Rezultati i kodit te mesiperm eshte: Operatoret e Krahasimit Operator Perkufizimi == I barabarte me != Jo i barabarte me > Me i madh se < Me i vogel se >= Me i madh ose i barabarte me <= Me i vogel ose i barabarte me Rezultati i ketyre krahasimeve eshte true ose false. Ju mund te perdorni rezultatin e tyre ne shprehje kontrolli si if…else dhe while per te kryer nje detyre specifike. Operatoret Logjike (1) Operatoret logjike lejojne skriptet qe te percaktojne gjendjen e kushteve (siç ishte krahasimi ne seksionin e meparshem) Ne kontekstin e shprehjeve if…else ose while, operatoret logjike eskzekutojne kod te caktuar, bazuar ne faktin se cilat nga kushtet jane te verteta dhe cilat te gabuara. Per momentin, le te fokusohemi ne operatoret && (and) dhe || (or) per te percaktuar vlefshmerine e krahasimive. Operatoret Logjike (2) $degrees = "95"; $hot = "yes"; if (($degrees > 100) || ($hot == "yes")) { echo "<P>TEST 1: It's <strong>really</strong> hot!</P>"; } else { echo "<P>TEST 1: It's bearable.</P>"; } Strukturat e kontrollit: Kushtezimet (1) Shprehja If...Else Sintaksa 1. if (kushti) kodi qe duhet ekzekutuar nese kushti eshte i vertete ; else kodi qe duhet ekzekutuar nese kushti eshte i gabuar; <?php $d=date("D"); if ($d=="Fri") echo "Have a nice weekend!"; else echo "Have a nice day!"; ?> Nese duhet te ekzekutohen me shume rreshta kodi, kur kushti eshte i vertete/gabuar, rreshtat duhet te vendosen brenda kllapave { } : <?php $d=date("D"); if ($d=="Fri") { echo "Hello!<br />"; echo "Have a nice weekend!"; echo "See you on Monday!"; } ?> Strukturat e kontrollit: Kushtezimet (2) <html><head> <title>good ......</title> </head> • Nese deshironi qe te ekzekutoni <body> kod nese njeri nga kushtet eshte <?php i vertete, perdorni shprehjen $hour = date("H"); elseif if ($hour <= 11) { echo "good morning my friend"; } Sintaksa if (kushti1) kodi qe duhet ekzekutuar elseif ($hour > 11 && $hour < 18) { echo "good afternoon my friend"; } nese kushti1 eshte i vertete ; else { echo "good evening my friend"; elseif (kushti2) kodi qe duhet } ekzekutuar nese kushti2 eshte i ?> vertete; else kodi qe duhet ekzekutuar nese </body></html> 2.Shprehja ElseIf kushti2 eshte i gabuar; Shprehja Switch Nese deshironi te selektoni nje nga disa blloqe kodi per t’u ekzekutuar, perdorni shprehjen Switch. • Shprehja switch perdoret per te shmangur blloqet e gjata te kodit if..elseif..else. Sintaksa switch (expression) { case label1: code to be executed if expression = label1; break; case label2: code to be executed if expression = label2; break; default: code to be executed if expression is different from both label1 and label2; } • switch ($textcolor) { case "black": echo "I'm black"; break; case "blue": echo "I'm blue"; break; case "red": echo "I'm red"; break; default: // It must be something else echo "too bad!!, I'm something else"; } Shprehja while Sintaksa while (condition) { // statements } Shembull <html> <head> <title>Let us count !!!</title></head> <body> <?php $limit = 10; echo "<h2> Let us count from 1 to $limit </h2><br />"; $count = 1; while ($count <= $limit) { echo "counting $count of $limit <br>"; $count++; } ?> </body><html> Shprehja do...while • Shprehja do...while do ta ekzekutoje nje bllok kodi te pakten njehere – me pas ajo do ta perserise ciklin per sa kohe qe kushti te jete i vertete. Sintaksa • do { code to be executed; } while (condition); Shembull <html> <body> <?php $i=0; do { $i++; echo "The number is " . $i . "<br />" } while ($i<5); ?> </body> </html> Shprehja for Perdoret kur ju e dini se sa here deshironi ta ekzekutoni nje shprehje ose nje liste shprehjesh. Sintaksa • for (init; cond; incr) { code to be executed; } • Parametrat: • • • • init: kryesisht perdoret per te percaktuar nje numerues, por mund te jete cdo kod qe duhet te ekzekutohet ne fillim te shprehjesh se ciklit. cond: vleresohet ne fillim te cdo iteracioni te ciklit. Nese kushti eshte TRUE, cikli vazhdon dhe kodi ekzekutohet. Nese eshte FALSE, ekzekutimi I ciklit mbaron. incr: kryesisht perdoret per te inkrementuar nje numerues, por mund te jete cdo kod qe duhet ekzekutuar ne fund te secilit cikel. Shembull <html> <body> <?php for ($i=1; $i<=5; $i++) { echo "Hello World!<br />"; } ?> </body> </html> Shprehja foreach • • Shprehja foreach perdoret per te bredhur ne vektore. Per cdo iteracion te ciklit, vlera e elementit aktual te vektorit I jepet variablit $value (dhe shenjuesi I vektorit leviz me nje) – keshtu qe ne ciklin tjeter, ju do te jeni duke kontrolluar elementin tjeter. Sintaksa • foreach (array as value) { code to be executed; } Shembull <html> <body> <?php $arr=array("one", "two", "three"); foreach ($arr as $value) { echo "Value: " . $value . "<br />"; } ?> </body> </html> Vektoret (Arrays) PHP Nje vektor mund te ruaje nje ose me shume vlera ne nje emer te veteme variabli. Ka tre lloje vektoresh ne PHP: Vektori numerike – Nje vektor me nje celes ID numerik Vektori i Shoqeruar (Associative array) – Nje vektor ku secili celes ID lidhet me nje vlere Vektori Shumedimensional (Multidimensional array) – Nje vektor qe permban nje ose me shume vektore. Vektoret Numerike • • Nje vektor numerike ruan secilin element me nje celes ID numerik. Ka menyra te ndryshme per te krijuar nje vektor numerik: Shembull 1 • Celesi ID vendoset ne menyre automatike: • $names = array("Peter","Quagmire","Joe"); Shembull 2 • Celesi ID vendoset manualisht: $names[0] = "Peter"; $names[1] = "Quagmire"; $names[2] = "Joe"; Shembull 3: <?php $names[0] = "Peter"; $names[1] = "Quagmire"; $names[2] = "Joe"; echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors"; ?> Vektoret e Shoqeruar • • • Secili celes ID shoqerohet me nje vlere. Kur ruani te dhena rreth vlera te emertuara ne menyre specifike, nje vektor numerik nuk eshte gjithmone menyre me e mire per ta bere kete. Ka dy menyra per te krijuar nje vektor te shoqeruar: Shembull 1 • $ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34); Shembull 2 • $ages['Peter'] = "32"; $ages['Quagmire'] = "30"; $ages['Joe'] = "34"; Shembull 3: <?php $ages['Peter'] = "32"; $ages['Quagmire'] = "30"; $ages['Joe'] = "34"; echo "Peter is " . $ages['Peter'] . " years old."; ?> Vektoret Shumedimensionale • • • Ne nej vektor shumedimensional, secili element ne vektorin kryesor mund te jete gjithashtu nje vektor. Dhe secili element ne nenvektor mund te jete vete nje vektor, e keshtu me rradhe. Shembull 1 Me celesa ID te vendosura automatikisht : $families = array ( "Griffin"=>array ( "Peter", "Lois", "Megan" ), "Quagmire"=>array ( "Glenn" ), "Brown"=>array ( "Cleveland", "Loretta", "Junior" ) ); Shembull 2: Vektori i mesiperm do te dukej keshtu, nese do shkruhej si output Array ( [Griffin] => Array ( [0] => Peter [1] => Lois [2] => Megan ) [Quagmire] => Array ( [0] => Glenn ) [Brown] => Array ( [0] => Cleveland [1] => Loretta [2] => Junior ) ) •Afishimi i nje vlere te vetme nga vektori i mesiperm: echo "Is " . $families['Griffin'][2] . " a part of the Griffin family?"; Pyetje???