Friday, February 24, 2012

PHP 09 - Functions වලින් වැඩ කරමු

PHP පාඩම් මාලාවේ 09 වැනි පාඩමෙන් අපි ඉගෙනගන්නේ PHP Functions පිළිබඳවයි. අපි මෙතෙක් ලියූ කේතසටහන් අපි ලීවේ කෙළින්ම ඔබේ HTML පිටුවේ BODY එක තුළ පිටුව Load වන අවස්ථාවේදීම ක්‍රියාත්මක වන ආකාරයෙනුයි. එසේ නොමැතිව ඔබ එම කේතයන් Function එකක් තුළ ලීවේනම් ඔබට අවශ්‍ය අවස්ථාවකදී පමණක් අදාල Function එක එහි නමින් call කර ක්‍රියාත්මක කරවීමේ හැකියාව මේ තුළින් ලැබෙනවා.

මේ පාඩමෙන් අපි අවධානය යොමුකරන්නේ ඔබ විසින්ම නිර්මාණයකරගනු ලබන ඔබේම Functions ලියන ආකාරය පිළිබඳවයි.

Function එකක් නිර්මාණය කරමු


සරලවම කීවොත් Function එකකින් සිදුවන්නේ අවශ්‍ය අවස්ථාවලදී අදාල Function එක ක්‍රියාත්මක කරවා එහි සඳහන් කේත ක්‍රියාත්මක කරවීමකි. PHP Function එකක ආකෘතිය පහත පරිදි වේ.


මෙහි Function Name එක සඳහා නමක් දීමේදී අදාල Function එකෙන් සිදුවන කාර්යය පිළිබඳ අදහසක් දෙන නමක් භාවිතා කිරීම වඩා යෝග්‍ය වේ. එසේම Function name එකක් _ හෝ අකුරකින් මිස ඉලක්කමකින් ආරම්භ කළ නොහැකි බවත් මතක තබාගන්න.

පහත සඳහන් කේත සටහන දෙස බලන්න.


මෙම කේත සටහනේ මම writeName නමින් Function එකක් සාදා එහි සඟල වරහන් තුළ කේතයක් ඇතුළත් කර තිබෙනවා. එයින් කෙරෙන්නේ දී ඇති String එක බ්‍රව්සරය තුළ පෙන්වීම බව ඔබ දන්නවා. නමුත් ඔබ මෙම කේත සටහන save කර ධාවනය කළත් ඔබේ පිටුව තුළ කිසිවක් නොපෙනෙනු ඇති. ඊට හේතුව ඔබ එම කේතය ලියා ඇත්තේ Funtion එකක් තුළ වීමයි. මෙසේ Function එකක් තුළ ලියන කේත ක්‍රියාත්මක කරවීමටනම් ඔබ එම Function එකේ නම කියා කතා (Call) කළ යුතුය. Function එක ක්‍රියාත්මක වන්නේ call කරන්නේනම් පමණි.


මෙතැනදී මම පෙර කී අඩුව සම්පූර්ණ කර තිබෙනවා. ඒ මෙහි 13වැනි පේළියේදී ක්‍රියාත්මක කිරීමට අවශ්‍ය Function එකේ නමින් call කිරීමෙන්. දැන් ඔබේ Function එක ක්‍රියාත්මකවී අදාල පරිදි එහි ඇති කේත ධාවනය වනු ඇති. මෙම කේතයේ ප්‍රතිඵලය පහත පරිදි ඔබේ බ්‍රව්සරයේ දිස්වෙනු ඇති.


Function එක තුළට ඔබ මේ දක්වා ඉගෙනගත් කේත ඇතුළත් කර වෙනස් විදියකින් උත්සහ කරලා බලන්න.

දැන් අපි තවත් පියවරක් ඉදිරියට යමු.

Parameters සහිතව Functions නිර්මාණය කිරීම


මේ පාඩමේ ඉහළ කොටසේදී අපි සරල Function එකක් ලියාගන්නා ආකාරය පිළිබඳව කතා කළා. දැන් අපි ඉගෙනගනිමු එතැනින් ඉදිරියට ගොස් parameters සහිත Function එකක් ලියන ආකාරය.

තවත් ලේසි වෙන්න උදාහරණයකින්ම පැහැදිලි කරගනිමු.


මෙම උදාහරණයේ 8 වැනි පේළියේදී writeName නමින් Function එකක් ආරම්භ කර තිබෙනවා. එහි වරහන්  තුළ ලබාදී ඇත්තේ parameters දෙකකි. ($firstName සහ $lastName). දැන් ඔබ අදාල Function එක call කිරීමේදී වරහන් තුළ කලින් Function එක සඳහා ලබාදුන් parameters දෙක සඳහාද values වරහන් තුළ ලබාදිය   යුතුය. එවිට Function එක ඒවා හඳුනාගෙන අදාල පරිදි භාවිතා කරනු ලබයි.


තවත් උදාහරණයක් ගෙන බලමු.

සාමාන්‍යයෙන් අපි ලාභය ගණනය කරන්නේ ආදායමෙන් වියදම අඩුකිරීමෙන්. පහත උදාහරණයෙන් මා අපේක්ෂා කරන්නේ ආදායම සහ වියදම සඳහා අගයන් දෙකක් ලබාදුන් පසු ඒ අගයන් දෙක අතර වෙනස ලාභය ලෙස ගණනය කර දෙන Function එකක් ලිවීමටයි.


මෙහිදී පළමුව මා $income සහ $cost ලෙස parameters දෙකක් ඇති calProfit නම්වූ Function එකක් ලියා තිබෙනවා. එහිදී ක්‍රියාත්මක වියයුතු කේතය ලෙස “Your Profit is “ යන String එක සමග ලබාදුන් ආදායම සහ වියදම අතර වෙනස ගණනය කර බ්‍රව්සරයේ පෙන්වන්නැයි කියා තිබෙන බව ඔබට පෙනෙනවා.

ඉන්පසු 13 වැනි පේළියේදී මම මේ Function එක Call කරනවා $income සහ $cost සඳහා පිළිවෙලින්, 1000 සහ 750 යන අගයන් ලබාදෙමින්. එවිට Function එකෙන් parameters දෙක ලබාගෙන අදාල කේතය ක්‍රියාත්මක කරනවා. පැහැදිලියි නේද? මේ කේත සටහනේ ප්‍රතිඵලය මෙසේයි.

 දැන් අපි තවත් පියවරක් ඉදිරියට යමු.

Return Values සහිතව Functions නිර්මාණය කිරීම


ඉහත අවසානයට කී Function එකේදී, Function එක ඇතුළත කළ ගණනය කිරීම භාවිතා කළේ Function එක තුළම ලියූ කේතයක් මගින් බව ඔබට පැහැදිලි ඇති. Return values සහිතව functions ලිවීමේදී ඔබට අදාල Function එකෙන් ලැබෙන අවසාන ප්‍රතිඵලය ඔබ Function එක call කරන තැනටම ලබාගත හැකියි.

ඒ සඳහා ඔබ කළ යුත්තේ Return යන පදය සමග return කළ යුතු value එක ලබාදීම පමණි.

උදාහරණයක් ගෙන බලමු.


මෙම උදාහරණයේදීත් පෙර මෙන්ම Parameters දෙකක් සහිත calProfit නම්වූ Function එකක් ලියා තිබෙනවා. ඉන්පසු එම Function එකෙන් සිදුවිය යුත්තේ කුමක්ද යන්න සඟල වරහන් තුළ ලියා තිබෙනවා. ඒ, (10 වැනි පේළියේ) Parameters සඳහා ලබාදෙන values දෙක අතර වෙනස ගණනය කර එය $profit නම්වූ variable එකකට assign කරන ලෙසත්, ඉන්පසුව (11 වැනි පේළියේදී) එසේ ගණනය කිරීමෙන් පසුව $profit නැමැති variable එක Function එකෙන් පිටතට යවන ලෙසත්ය.

14 වැනි පේළියේදී සිදුකර ඇත්තේ "Your Profit = " යන String එක සමග calProfit Function එක call කිරීමයි. මෙහිදීද භාවිතා කර ඇත්තේ අප කලින් භාවිතා කළ parameters දෙකද සමග function එක call කිරීමේ ක්‍රමයමයි. නමුත්, දැන් අපේ function එක value එකක් return කරන නිසා Function එකෙන් ලැබෙන පිළිතුර කෙළින්ම අප Function එක call කරන තැනටම ලබා දෙනවා.

මේ කේතයේ ප්‍රතිඵලය මෙසේ බ්‍රව්සරය තුළ දිස්වනු ඇති.


වෙනස් විදියේ Functions ලියලා practice කරන්න. මීට කලින් පාඩම් වලදි ඉගෙනගත් Concepts ටිකත් භාවිතා කරලා කරන්න පුලුවනිනම් තවත් හොඳයි.


Built-in Functions



PHP තුළ විවිධ කාර්යයන් සඳහා භාවිතා කළ හැකි Built-in Function විශාල සංඛ්‍යාවක් තිබෙනවා. PHP Built-in Functions ලැයිස්තුවක් ඔබට මේ පහළ සබැඳි click කිරීමෙන් බලාගන්න පුලුවනි. ඒවායේත් ඇති ලින්ක් ක්ලික් කරමින් ගොස් මෙම Functions පිළිබඳ සියලුම තොරතුරු සරලව කෙටියෙන් ඔබට දැනගත හැකියි.


මේවායේ තියෙන වෙනස තමයි අපි විසින් Function එක ලිවිය යුතු නොවීම. මේවා දැනටමත් ලියා තිබෙනවා PHP වැඩසටහන තුළ. අප කළයුත්තේ Function එක සහ සුදුසු පරිදි Parameters (ඇත්නම් ඒවා) ලබාදීම පමණි. සැඟවුණු Built-in Function එක මගින් අදාල ගණනයකිරීම් කර ප්‍රතිඵලය ලබාදෙනු ඇති.

උදාහරණයක් විදියට date functions තුළ ඇති date() Function එක භාවිතා කරන හැටි මම කියාදෙන්නම්. ඒසඳහා භාවිතා වන parameters සමග සියලුම විස්තර මෙතැනින් බලන්න.


මෙහිදී අපිට "Function Date() {.............}" යන ආකාරයේ අපි කලින් ලියූවා මෙන් Function එකක් කේත සටහන තුළ නැහැ. ලිවිය යුතුත් නැහැ. මොකද Date() කියන්නේ PHP ස්ථාපනය කරද්දීම එහි Built-in Function එකක් ලෙස ලැබෙන Function එකක්. ඒනිසා අප කළයුත්තේ අවශ්‍ය තැනදී Function එක call කිරීම සහ අදාල පරිදි parameters ලබාදීම පමණයි.

මෙහි 8 වැනි පේළියේදී date function එක call කර තිබෙනවා "d-m-y" ලෙස parameters සැකසීමෙන් අනතුරුව. මෙහි ප්‍රතිඵලය පහත පරිදි දිස්වනු ඇති.


මේ පෙන්වන්නේ එම අවස්ථාවේ පවතින දිනයයි. එය දිනය (d) ඉරක් මාසය(m) ඉරක් වර්ෂය(y) ලෙස පෙන්වන්නේ මම Format කියන parameter එකට ලබාදුන් අගයේ ඇති ආකාරයටයි. ("d-m-y").

පැහැදිලියි නේද?

මීළඟ පාඩමෙත් තවත් ආස හිතෙන දෙයක් ගැන ඉගෙනගනිමු. ඒ Form Handling ගැන.

ඔබ මේ ලිපියෙන් යමක් ඉගෙනගත්තානම් Comment එකකින් මා දිරිමත් කරන්නත් අමතක කරන්න එපා.ස්තුතියි!