Funksionet ne PHP PhD, MS, Under Leksion 8.

Slides:



Advertisements
Similar presentations
Rruga për ahiret nuk kalohet me këmbë, por me zemër.
Advertisements

Algjebra Relacionale & SQL
Rishikimi i literatures Leksioni 7 1. Permbajtja e prezantimit Qellimi i rishikimit te literatures Procesi i rishikimit te literatures Instrumentet e.
Aksesimi i bazes se te dhenave MySQL nepermjet PHP-se
Lenda : Kontabiliteti Financiar
Proceset Multiprogramim me timesharing->pseudoparalelizem ≠ nga multiprocesori(sharojne nje RAM) Procesi ndryshon nga Programi sepse ai eshte aktiv. (PC,regjistrat,variablat,
Teknologji Informative
SHMU-2 VUSHTRRI Punim Seminarik Lënda:Informatikë Tema:Kartela Grafike
Leksioni nr 2 Data Base.
JavaScript Leksion 4.
Arkitektura baze e aplikacioneve web Hyrje ne PHP
Variablat Konstantet Strukturat e kontrollit Ciklet Tabelat (Arrays)
Universiteti Shtetëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM.
Universiteti Shtetëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM.
Access 2007 Quiz.
Universiteti Shtetëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM.
Fletet e Stiluara ne Kaskade (Cascading Style Sheets - CSS)
TIK 12 – Prof. Blerand Koshi
ALGORITMIKE Leksion 1.
Sherbimet e fileve dhe printimit
Marrja e te inputit te perdoruesit
DHTML, DOM dhe Javascript Modeli i objekteve dhe ngjarjeve
Algoritmet e Renditjes
Universiteti i Prizrenit
Android.
Bazat e te dhenave Elemente kryesore te MySQL-se
Universiteti Shtetëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM.
Formatet e skedareve grafike dhe teknikat e kompresimit
Elementet e gjuhës C++.
LEKSION 12 XML (Extensible Markup Language) Skema XML
Universiteti Shtetëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM.
JavaScript Leksion 8.
Lenda : Kontabiliteti Financiar
MS POWERPOINT PREZANTIMET.
Elementet e gjuhës C++.
Universiteti AAB Programi: PSIKOLOGJI STATISTIKE T-testi Për grupet e pavarura Për grupet e varura Dr.sc. Merita Shala.
Perdorimi i Multimedias ne Web
Tema: Viruset dhe Antiviruset Sh. m
Algoritmet e Sortimit.
6. Unaza While dhe Do While
Menaxhimi i perdoruesve dhe grupeve
F U N K S I O N E T.
SH-M-U-2 Kl.9/4 Valon Ibishi Lënda:Informatikë Tema:Programi Excel Arsimtar:Muhamer Ujkani Vushtrri,2014.
LEKSION 9 Dizenjimi i database-it relacional.
Pune me projekt Tema: Zgjidhja e problemeve nepermjet aplikimit te patches, updates dhe services packs. Punoi: xhensila cela.
Agregatët monetarë Ekzistojnë agregatë monetarë të ndryshëm që përfaqësojnë masa sasiore të ofertës agregate të parasë në një vend. Agregatët monetarë.
USHTRIME MSc. Fisnik Morina PhD (c)
Punuar nga: Rilind Ademi
Variablat dhe Funksionet
I Love my family!!!.
QUMSHTORJA SHARRI D R A G A SH
Perpunimi i stringjeve
Universiteti Shtetëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM.
SH.M.U 2 Vushtrri Sistemet operative te Winows XP Muhamer Ujkani
Punuar nga : Granit Bajrami
Format ne HTML/XHTML Leksion Jan-19.
Targetimi i elementeve specifike
E Drejta e Procedures Penale
Degëzimet.
Puna me fajlla ne C++ Dr. Fisnik Dalipi.
Internet Ligjerata 8 Dr. Fisnik Dalipi.
Formular Projekti Forumi i Mesuesit Novator, Shkurt 2014 Text
TIK 12 – Prof. Blerand Koshi
TIK 11 – Prof. Blerand Koshi
Variablat dhe konstantet
Degëzimet.
Cfare eshte EMD? Electronic Miscellaneous Document (EMD) eshte metoda elektronike standarte qe do te perdoret tashme per shitjen dhe menaxhimin e sherbimeve.
WEB My Rotary Pergatiti: Edmond Sheshi.
SMART TOURISM ENHACEMENT PROJECT
Operatorët.
Presentation transcript:

Funksionet ne PHP PhD, MS, Under Leksion 8

Cfare eshte nje funksion? Nje funksion eshte nje seksion kodi me nje qellim te caktuar, te cilit i vendoset nje emer unik. Emri i funksionit mund te thirret ne pika te ndryshme te programit, duke bere qe ky seksion kodi te ekzekutohet ne menyre te perseritur sipas nevojes. Kjo eshte e leverdisshme sepse i njejti seksion kodi shkruhet vetem njehere, por mund te modifikohet me lehtesi sipas nevojes.

Krijimi i nje funksioni dhe thirrja e tij Ne PHP mund te krijoni nje funksion ne pika te ndryshme te programit. Megjithate per qellime organizimi, mund te jete me e pershtatshme qe te vendosen te gjitha funksionet qe do te perdoren ne skript, ne fillin te skedarit te skriptit. Nje menyre tjeter eshte qe te vendosen te gjithe funksionet ne nje skedar te vecante (te njohur edhe si librari). Kjo eshte e pershtatshme sepse te njejtit funksione mund t’i perdorni ne disa aplikacione, pa patur nevoje qe t’i rishkruani ato.

Krijimi i nje funksioni dhe thirrja e tij Krijimi i nje funksioni perbehet nga 3 pjese: Emri i funksionit Kllapat qe permbajne parametrat e inputit, te ndare me presje. Trupi i funksionit, qe perfshihet brenda kllapave te perdredhura {} Forma e pergjithshme e nje funksioni eshte: function function_name (optional $arg1, $arg2, ..., $argn) { code section }

Krijimi i nje funksioni dhe thirrja e tij Emri i funksionit duhet te ndjeke ato rregulla leksikore qe aplikohen per emrat e variablave. Kujdes: Emrat e variablave jane case-sensitive, ndersa emrat e funksioneve jo. Kllapat () pas emrit te funksionit jane te detyrueshme te vendosen, edhe po nuk pati parametra inputi. Nuk eshte e nevojshme qe te deklarohen tipet e te dhenave te parametrave te inputit. (Por per t’u siguruar qe parametrat e inputit, po perdoren ashtu sic duhet, mund te testoni tipin e te dhenave me funksionin gettype() ).

Krijimi i nje funksioni dhe thirrja e tij Rezultati i funksionit Percaktimi i funksionit Thirrja e funksionit

Percaktimi i funksioneve ne PHP Le te shohim dy funksione, ku secili merr nje argument. I pari merr nje string dhe e printon ate duke I shtuar nje element <br />. Funksioni i dyte ben te njejten gje, por shton dy elemente <br /> ne fund te stringut. Me pas do shohim shembuj funksionesh qe marrin me shume argumente dhe kthejne vlera:

Percaktimi i funksioneve ne PHP

Defining Functions In PHP

Defining Functions In PHP

Krijimi i nje funksioni dhe thirrja e tij Shembull: Supozoni qe doni te krijoni nje funksion qe afishon nje shenim te zakonshem per copyright ne nje faqe web: function display_copyright() { print "Copyright © 2013 PHP-Powered Recipes. All Rights Reserved."; } Duke patur parasysh qe siti web ka shume faqe, ju mjafton te therrisni kete funksion ne fund te cdo faqeje, duke eliminuar nevojen per te rishkruar te njejtin informacion. Keshtu qe nese duhet te ndryshoni vitin, nga 2013 ne 2014, mjafton ta ndryshoni ate ne funksion.

Krijimi i nje funksioni dhe thirrja e tij Bejme nje ndryshim ne funksionin display_copyright() dhe i kalojme atij nje parameter. Supozojme se duam te kemi te njejtin copyright per disa site te ndryshme, por ndryshon vetem emri i sitit: function display_copyright($site_name) { print "Copyright &copy 2013 $site_name. All Rights Reserved."; }

Funksionet e nderfutura Eshte e mundur te nderfuten funksione brenda funksioneve. Duke rishikuar shembullin e meparshem, mund te eliminojme nevojen per te ndryshuar daten, duke thirrur funksionin e PHP-se date() : function display_copyright($site_name) { print "Copyright &copy". date("Y"). " $site_name. All Rights Reserved."; } Parametri input Y i funksionit date() specifikon qe vlera e kthimit duhet te jete viti aktual, i formatuar duke perdorur 4 shifra. Duke kosideruar qe konfigurimi i dates se sistemit eshte i sakte, PHP do te afishoje vitin e sakte sa here qe funksioni thirret ne skript. Funksioni date() i PHP-se eshte shume fleksibel, duke ofruar 25 lloje te formatimit te dates dhe ores.

Funksionet e nderfutura Gjithashtu mund te nderfuten edhe deklarimet e funksioneve, brenda njeri-tjetrit. Megjithate kjo nuk do te thote qe nje funksion eshte i kufizuar te perdoret vetem brenda funksionit ne te cilin eshte deklaruar. Per me teper, nje funksion i nderfutur, nuk trashegon parametrat e inputit te prindit te tij, por parametrat duhet t’i kalohen ashtu sic i kalohen funksioneve te tjere.

Shembull: Perdorimi i funksioneve te nderfutur function display_footer($site_name) { function display_copyright($site_name) { print "Copyright &copy ". date("Y"). " $site_name. All Rights Reserved."; } print "<center> <a href = \"\">home</a> | <a href = \"\">recipes</a> | <a href =\"\">events</a><br> <a href = \"\">tutorials</a> | <a href = \"\">about</a> | <a href =\"\">contact us</a><br>"; display_copyright($site_name); print "</center>"; $site_name = "PHP Recipes"; display_footer($site_name);

Shembull: Perdorimi i funksioneve te nderfutur Nga ekzekutimi i ketij skripti afishohet: home | recipes | events tutorials | about | contact us Copyright © 2013 PHP Recipes. All Rights Reserved. Shenim: Ne mund ta therrisnim funksionin display_copyright() nga jashte funksionit display_footer(), ashtu sic thirrem fuksionin display_footer() ne shembullin e meparshem. PHP nuk e suporton konceptin e funksioneve te mbrojtur ( protected functions). Megjithese funksionet e nderfutur nuk jane te mbrojtur nga te thirrurit ne cdo pjese te skriptit, ata nuk mund te thirren deri pasi te thirret funksioni prind i tyre. Nese perpiqeni te thirrni nje fuksion te nderfutur perpara se te thirrni prindin e tij, do te shfaqet nje mesazh gabimi.

Kthimi i vlerave nga nje funksion Shpesh na nevojitet te kthehet nje vlere nga nje funksion. Kjo realizohet duke i caktuar nje variabel thirrjes se fuksionit (pra thirrja e funksionit t’i jepet si vlere nje variabli) Vlerat e kthimit te funksionit mund te jene te cfaredo tipi, duke perfshire ketu edhe listat dhe vektoret. Shprehja return perdoret per te kthyer vlera nga funksioni: Vlerat e kthimit ne shprehjen return mund te jene te ndryshme: Vlera mund te jete e shkruar ne kod: return 4; Vlera mund te jete rezultat i nje shprehjeje: return $a/$b; Ajo mund te jete vlere e kthyer nga thirrja e nje funksioni tjeter: return anotherFunction($an_argument); Ne shembullin ne vijim, llogaritet taksa e shitjeve per nje cmim te caktuar dhe me pas kthehet kostoja totale.

Kthimi i vlerave nga nje funksion Le te shohim me pare nje permbledhje te pseudokodit: Supozojme se jane caktuar disa vlera si cmime produktesh, $price, dhe taksa shitjesh, $tax. Deklarojme funksionin calculate_cost(). Ai pranon dy parametra taksen e shitjeve dhe cmimin e produktit. Llogarit koston totale dhe perdor return per te kthyer koston e llogaritur. Therret calculate_cost(), duke ruajtur ne variablin $total_cost vleren qe do te kthehet nga funksioni. Afishon mesazhin perkates

Shembull: Fuksioni qe llogarit taksen e shitjeve $price = 24.99; $tax = 0.06; function calculate_cost($tax, $price) { $sales_tax = $tax; return $price + ($price * $sales_tax); } // Vereni se si e kthen vleren funksioni calculate_cost(). $total_cost = calculate_cost ($tax, $price); // rrumbullakos koston ne dy shifra pas presjes. $total_cost = round($total_cost, 2); print "Total cost: ".$total_cost; // $total_cost = 26.49

Kthimi i vlerave nga nje funksion Shenim: Nje funksion qe nuk kthen nje vlere njihet edhe si procedure. Nje tjeter menyre per te perdorur vlerat e kthimit eshte qe te vendoset thirrja e funksionit direkt ne nje shprehje kushti ose iterative. Shembulli i meposhtem krahason faturen totale te nje perdoruesi me nje kredit limit. Nese check_limit() vleresohet true, i thuhet perdoruesit per te vazhduar blerjen. Perndryshe informohet qe eshte kaluar limiti i kreditit

Shembull: Krahasimi i nje fature te perdoruesit me nje limit krediti $cost = 1456.22; $limit = 1000.00; function check_limit($total_cost, $credit_limit) { if ($total_cost > $credit_limit) : return 0; endif; return 1; } if (check_limit($cost, $limit)) : print "Keep shopping!"; else : print "Please lower your total bill to less than $".$limit."!";

Funksionet Rekursive Funksionet rekursive perdoren per te kryer procedura te perseritura. Ato kursejne hapesire ne memorie dhe eliminojne tepricat ne skript. Shembull: Perdorimi i nje funksioni rekursiv per te mbledhur nje bashkesi numrash te plote: function summation ($count) { if ($count != 0) : return $count + summation($count− 1); endif; } $sum = summation(10); print "Summation = $sum"; Outputi eshte: Summation = 55

Fusha e veprimit te variablave Nje variabel qe deklarohet brenda nje funksioni mbetet lokal per ate funksion. Me fjale te tjera. Ky variabel nuk eshte i vlefshem jashte funksionit ose brenda funksioneve te tjere. Kjo quhet fushe veprimi (scope) per nje variabel. Kjo gjithashtu nenkupton qe emrat e variablave nuk kerkohet te jene unike neper funksione te ndryshme. Pra mund te kemi variabla me te njejtin emer ne funksione te ndryshme. Shembulli qe vijon ilustron fushen e veprimit te nje variabli. Vereni qe te dy funksionet functionOne dhe functionTwo deklarojne variabla me emrin myInt.

Defining Functions In PHP

Percaktimi i Funksioneve ne PHP Brenda funksionit variabli eshte i dukshem (eshte ne fushen e tij te veprimit) Jashte funksionit variabli nuk eshte i dukshem (eshte jashte fushes se tij te veprimit)

Fusha e veprimit te variablave Gjithashtu nje variabel i deklaruar jashte funksionit, nuk eshte i aksesueshem nga brenda funksionit. Zakonisht, nese nje funksioni i nevojitet nje informacion nga jashte, ky informacion duhet t’i kalohet atij si argument i funksionit. Megjithate, ka raste kur ju mund te deshironi te aksesoni nje variabel te rendesishem, pa e kaluar ate si argument. Ne PHP, kjo realizohet duke perdorur shprehjen global e cila e lejon nje funksion qe te aksesoje nje variabel qe eshte deklaruar jashte tij. Me shume se nje variabel mund te deklarohen si globale njeheresh duke i ndare emrat e tyre me presje. Shembulli qe vijon e ilustron kete koncept.

Variable Scope

Fusha e veprimit te variablave Brenda functionOne variabli $alpha eshte i dukshem nepermjet shprehjes global. Vini re qe funksioni e ka modifikuar vleren e $alpha. Brenda functionTwo variabli $alpha gjithashtu eshte i dukshem nepermjet shprehjes global. Shprehja e trete echo ne kete funksion do te gjeneroje gabim kur perpiqet t’i referohet variablit $beta qe eshte jashte fushes se tij te veprimit. Jashte funksioneve, variablat jane perseri brenda fushes se tyre te veprimit dhe vini re vleren e modifikuar te variablit $alpha.

Ruajtja e gjendjes ndermjet thirrjeve te funksionit Variablat lokale vijne ne ekzistence kur thirret funksioni dhe vdesin kur perfundon ekzekutimi i funksionit. PSh: Supozoni se doni qe nje funksion te ruaje gjurme te numrit te hereve qe ai eshte thirrur, ne menyre qe te krijohen rreshta te numeruar ne skript. Natyrisht kete do ta realizonit duke perdorur shprehjen global dhe duke e aksesuar variablin e deklaruar jashte funksionit. Shembulli qe vijon ilustron kete teknike.

Saving State Between Function Calls

Ruajtja e gjendjes ndermjet thirrjeve te funksionit

Ruajtja e gjendjes ndermjet thirrjeve te funksionit Shembulli qe pame, i jep funksionit nje lloj “kujtese” nepermjet perdorimit te nje variabli global. Por, kjo nuk eshte nje rruge shume elegante. Pse? Pergjigje: Funksionet, qe perdorin shprehjen global, nuk mund te lexohen si blloqe te vecanta kodi. Per t’i lexuar apo riperdorur ato, ju duhet te kontrolloni per variablat globale qe ata manipulojne. Nese nuk arrini ta bene kete, funksioni juaj eshte i padobishem. Ketu kyn ne loje shprehja static ne PHP. Deklarimi i nje variabli brenda nje funksioni si statik, ben qe variabli te mbetet lokal per funksionin dhe funksioni e kujton vleren e tij nga njeri ekzekutim ne tjetrin.

Saving State Between Function Calls

Ruajtja e gjendjes ndermjet thirrjeve te funksionit

Vendosja e vlerave default per Argumentet Per disa funksione, qe kerkojne nje ose me shume argumente, ju mund te specifikoni qe disa nga argumentet jane opsionale. Kjo i ben funksionet tuaja me fleksibel. Per ilustrim, le te ndertojme nje funksion qe merr nje string dhe nje numer te plote qe i korrespondon madhesise ne te cilen do te printohet teksti ne browser.

Setting Default Values For Arguments

Vendosja e vlerave default per Argumentet Ne menyre qe argumenti te behet opsional, ju mund t’i jepni vlere argumentit, brenda kllapava ne percaktimin e funksionit. Keshtu vendosim nje vlere default per argumentin, nese nuk jepet asnje vlere per te kur thirret funksioni. Shembulli qe vijon e modifikon shembullin e meparshem. KUJDES Ju mund te vendosni sa te doni argumente opsionale, por kujdes me rendin e argumenteve. Nese keni vendosur nje argument opsional ne percaktimin e funksionit, atehere te gjithe argumentet qe vijne pas tij duhet te jene opsionale. Pra ju nuk mund te keni argumentin e pare opsional, te dytin te detyrueshem, te tretin opsional, e keshtu me rradhe. Rendi duhet te jete: Te gjithe argument e detyrueshem duhet te jene ne fillim, dhe me pas te vendosen te gjithe argumentet opsionale.

Parametri i dyte ka te percaktuar nje vlere default, qe e ben ate nje parameter opsional per funksionin, Thirrja e dyte dhe e trete e funksionit, e perdor kete vlere default.

Kalimi i variablave me reference tek funksionet Kur u kaloni argumente funksioneve, ato ruhen si kopje ne variablat parameter. Kjo dmth qe cdo ndryshim qe u behet ketyre variablave nga funksioni, eshte lokal per funksionin dhe nuk reflektohet jashte tij.

Kalimi i variablave me reference tek funksionet Ne menyre default ne PHP, variablat u kalohen funksioneve me ane te vleres. Pra, vetem kopje lokale te variablave perdoren nga funksionet dhe vlerat origjinale te variablave nuk jane te aksesueshme nga funksionet. Si mund te lejoni qe nje funksion te modifikoje nje variabel qe i dergohet atij? Ju duhet te krijoni nje reference per tek variabli. Operatori i references ne PHP eshte & (ampersand). Duke vendosur nje ampersand perpara argumentit ne percaktimin e nje funksioni, krijoni nje reference per tek variabli dhe lejoni qe funksioni te modifikoje vleren origjinale te variablit.

Kalimi i variablave me reference tek funksionet Argumenti $num kalohet si reference meqe ai paraprihet nga operatori &.

Pyetje???