710 likes | 1.08k Views
Baza te Kodimit ne PHP. Variablat Konstantet Strukturat e kontrollit Ciklet Tabelat (Arrays). Leksion 8. Taget e Fillimit dhe te Mbarimit te PHP-se. Taget e shkurtra (1). <? print “This is an example!”; ?>
E N D
BazateKodimit ne PHP Variablat Konstantet Strukturat e kontrollit Ciklet Tabelat (Arrays) Leksion 8
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
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 funksioneqejumundesojneqeteshtonikodngaskedaretejashtem: • include() • require() • include_once() • require_once() • PSh: • include("table2.php"); • Perfshinskedarin table2.php brendaskriptit 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 eshtenjesekuenceshkronjash, simbolesh, karaktereshdhevlerasharitmetikeosenjekombinimityre, tevendosurabrendathonjezavetekeoseç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">'; ?> • Kurstringueshteivendosurbrendathonjezaveçifte, sekuencatetillasi /n ose /r interpretohendhevariablatzevendesohen, ndersanesestringueshtebrendathonjezaveteke, njegje e tillenukndodh. • Stringjetqejane ne thonjezaçiftemundtevendosen ne disarreshta.
Bashkimi i stringjeve (1) • Operatoriibashkimittestringjeve (.) perdoret per telidhurdyvlera 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 • 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 • <HTML> • <BODY> • <?php • $actor = "Marlon Brando"; • echo $actor; • ?> • </BODY> • </HTML> • Kodi i mesiperm afishon Marlon Brando, ne browser
Fusha e veprimittevariablavedhejetegjatesia e tyre • Shembull: • <?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>"; • ?> • Fusha e veprimittenjevariablitepercaktuarbrendanjefunksionieshtelokale per ate funksion. • Njevariabelipercaktuar ne trupinkryesortekodit ka njefusheveprimiglobale. • Nesenjefunksioniiduhetteperdorenjevariabelqeeshteipercaktuartrupinkryesortekodit, duhett’ireferohetatijvariabli duke perdorurfjalenkyçe "global”
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
Shembuj te Operatoreve aritmetike • $Bread = 1.5 • $Milk = 0.8 • $DiscountCoupon = 0.5 • $ShoppingTotal = $Bread + $Milk - $DiscountCoupon;