PHP

**PHP** හෙවත් 'Hypertext Preprocessor', පළමුව ගතික වෙබ් පිටු සැකසීම සදහා නිර්මාණය කරන ලද සර්ව කාර්ය විධානාවලි පරිගණක භාෂාවකි. එය HTML වෙබ් පිටු තුළට කාවැද්දිය හැකි වන අතර සාමාන්‍යයෙන් වෙබ් සේවාදායකයක් ඒ සදහා හැඩගස්වා ගැනීමෙන් පසු භාවිතා කරනු ලැබේ. PHP බොහෝමයක් සේවාදායකයන් තුළ ස්ථාපනය කළ හැකි වෙයි. මේ වනවිට වෙබ් අඩවි මිලියන 20 ක් සහ වෙබ් සේවාදායකයන් මිලියනයක් විසින් PHP භාවිතා කරනු ලබයි. PHP සර්ව මෙහෙයුම් පද්ධති මෟදුකාංගයකි. එනම් එය මෙහෙයුම් පද්ධති බොහොමයක් මත කිසිදු වෙනසකින් තොරව භාවිතා කළ හැක.

PHP පළමුව ආරම්භ කරනු ලැබූයේ රාමුස් ලර්ඩොෆ් (Rasmus Lerdorf) විසින් 1995 දීය. එතැන් සිට අඛණ්ඩ වර්ධනයක් PHP වල දැකිය හැකිවිය. මේ වන විට මූලික PHP ගොඩ නැංවීමේ කටයුතු PHP කණ්ඩායම විසින් කරගෙන යනු ලබයි. විධිමත් නියමාවලියක් නොමැති නිසා මේ කණ්ඩායමේ කාර්යයන් පොදු පිළිගැනීම බවට පත්වී තිබේ. PHP, PHP බලපත්‍රය යටතේ නිකුත් කරනු ලබන නිදහස් මෘදුකාංගයකි. මේ GNU GPL ට අනුකූල නොවන්නේ නාමයේ වෙනස් කම නිසාය.
PHP විධාන රේඛාව (Command prompt) මත ක්‍රියා කරන මෘදුකාංගයක් බවටද දැන් පරිවර්තනය වෙමින් පවතින අතර ග්‍රාපිකරූපී මෘදුකාංගයක් ලෙසද භාවිත වේ.

## ඉතිහාසය 
PHP පළමුව 'පුද්ගලික මුල් පිටු' (personal home pages) යන තේරුම ලැබෙන පරිදි භාවිතා කර ඇත. ආරම්භක යුගයේදි (1994දී පමණ) මෙය රාමුස් ලරඩොෆ් විසින් C පරිගණක භාෂාවෙන් ලියන ලද පොදු වාහල මුහුණත් (CGI) ද්වීමය ගොනුවක්, perl විධානාවලියක් ප්‍රතිස්ථාපනය කිරීමට භාවිතා කිරීමෙන් මෙහි ආරම්භය සිදු විය. මෙම මෙවලම බොහෝ දුරට භාවිතයට ගන්නා ලද්දෙ ප්‍රචාරණ කටයුතු හා වෙබ් අඩවියට පැමිණෙන අමුත්තන් ගැන තොරතුරු එකතු කරගැනීමටත්ය. මෙම ද්විමය ගොනුව තම ආකෘති පරිවර්තකය සමග සම්බන්ධ කර ගැනීමෙන් ඔහු PHP/එෆ් අයි නැමැති මෘදුකාංගය නිපදවීය. මෙයට ඉතා ඉහල හැකියාවන් පැවතිණ. මෙයට C පරිගණක බසින් ඉතා විශාල දායකත්වයක් ලැබුන අතර දත්ත සමුදායන් සමග සම්බන්ධ වීම ආදි හැකියාවන් පැවතුණු බැවින් සරල ගතික වෙබ් අඩවි නිර්මාණය කිරීම පහසු විය. 1995 ජූනී 8 වැනිදා පොදු ජනයා වෙනුවෙන් PHP නිකුත් කෙරිණ. මෙහි මූලික අරමුණ වූයේ ගැටලු හා වැරදි සහිත තැන් නිවැරදිව හදුනාගැනීමයි. මෙය PHP2 ලෙස නම් කරනු ලැබූ අතර එයට අද පවතින බොහෝ මූලික හැකියාවන් පැවතිණ. මේ අතර perl බසට සමාන විචල්‍ය දැක්වීමේ ක්‍රමය, ආකෘති පත්‍ර භාවිතය හා HTML පිටු අතරට කාවැද්දිය හැකිවීම දැක්විය හැක. කාරක රීති බොහෝදුරට perl බසට ලං වුවත් මෙය සීමාසහිත වූත් සරල වූත් හා ස්ථීර වූත් බසක් ලෙස පිළිගැනීමට ලක්විය.

thumb|රාමුස් ලරඩොෆ්
thumb|ඇන්ඩි ගට්මන්ස්
thumb|සෙව් සුරාකි

Technion IIT, හි රැකියා කරන ඊශ්‍රායලීය ජාතික සෙව් සුරාකි හා ඇන්ඩි ගට්මන්ස් විසින් 1997 දි PHP විග්‍රහකය නැවතත් ලියන ලදි. මෙය PHP3 බවට පත්වීමට උපකාරී වූ අතර නව අර්ථ දැක්වීමද මෙයට ලැබෙන්නේ මෙතැන් සිට ය. PHP3 ද බොහෝ කාලයක් පොදු ජනයා අතර පර්යේෂණ මට්ටමෙන් භාවිතයට ඉඩසලස්වා දෙන ලදි. අනතුරුව 1998 ජූනි මාසයෙදී නිල වශයෙන් PHP3 නිකුත් කරන ලදි. සෙව් සුරාකි හා ඇන්ඩි ගට්මන්ස් නැවතත් PHP මාධ්‍යය වෙනස් කිරීමෙන් සෙන්ඩ් යාන්ත්‍රණය (Zend Engine) බිහිවිය. ඒ 1999 දීය. ඔවුන් මෙහිදී සෙන්ඩ් තාක්ෂණායතනයද පිහිටවූහ. 

2000 මැයි 22 වන දින PHP4 සෙන්ඩ් යාන්ත්‍රණ අංක 1.0 සමඟ නිකුත් විය. 2008 දී 4.4.9 දක්වා මෙම ශාඛාව විහිදිණි. තව දුරටත් PHP4 වර්ධනය කිරීම සිදු නොවේ. මේ සමගම මෙයට සපයන ලද ආරක්ෂක යාවත්කාලීන කිරීම්ද ඇණ හිටින ලදි. PHP5 නිකුත් වූයේ 2004 ජූලිමස 13 වන දිනයි. මේ සදහා දියුණු කරන ලද වස්තු කේන්ද්‍රික ප්‍රවේශයේද (object oriented) සහායද එක් කරන ලදි. PHP පන්ති දත්ත විස්තාරකය, සහ තවත් බොහෝ දියුණුකිරීම් මෙහිදී හදුන්වා දෙන ලදි. වසර 2008 වන විට පවතින් එකම ස්ථාවර සංස්කරණය PHP5 වෙයි. PHP6ද මේ වන විට PHP5ට සමාන්තරව දියුණු කරමින් පවතී. ප්‍රධානතම වෙනස්කම් ලෙස **register_globals** ඉවත් කීරීම, මායා ඉදිරිපත් කිරීම් (magic quotes), ආරක්ෂක ක්‍රමය (safe mode) ඉවත් කිරීම දැක්විය හැක. මේවා ඉවත් කිරීමට මුලික හේතුව පද්ධති වල ආරක්ෂාවට මේවා තර්ජනයක් වීමයි. තව දුරටත් magic quotes වෙනුවට **addslashes ()** විධානය භාවිතා කල හැකිය. නැතහොත් දත්ත සමුදාය නිර්මාණය කල ආයතනයට විශේෂ වු ක්‍රමයක් මේ සදහා භාවිතා කල හැකිය. PHP6 දි ඉවත් කරනු ලැබු විධාන PHP 5.3 දී භාවිතා නොකරන ලෙස උපදෙස් දී තිබේ . මේවා භාවිතයේදී අනතුරු ඇඟවීමක් බලාපොරොත්තු විය හැක (එහෙත් මෙම අනතුරු ඇඟවීම් නොදක්වා සිටීමටද PHP ඉතාම පහසුවෙන් හැඩ ගැස්විය හැක).

2008 පෙබරවාරී 5 වෙනිදා සිට බොහෝ ඉහල පෙළේ ආයතන PHP4 සදහා සහය දැක්වීම අත්හිටුවන ලදි. මෙයට මූලික හේතුව PHP ගොඩනගන්නන්ගේ එකමුතුව විසින් PHP4 සිට PHP5 දක්වා සංක්‍රමණයට අනුබල දෙනු ලැබූ නිසාය. වර්තමානයේදි PHP යුනිකෝඩ් සදහා සහාය නොදක්වයි. PHP 6දි යුනිකොඩ් සහාය ලැබෙනු ඇත. ඉන්පසුව ඉංග්‍රිසි නොවන භාෂා වලින් දත්ත පන්ති (classes) ඉදිරිපත් කිරීමටත්, විධාන සටහන් කිරීමටත් භාවිත කරන්නන්ට හැකියාව ලැබේ. මීට අමතරව දත්ත අතරටද වෙනස් භාෂා ගෙන යාමේ හැකියාව ලැබේ. වර්තමානයේද ඉංග්‍රිසි නොවන බසක් අණු ලකුණු වැලක් (string) ලෙස සටහන් කිරීමේ හැකියාව පවතී. එහෙත් එය දත්ත අතරට ගෙන යාමක් ලෙස හැදින්විය හැකි නොවේ.

PHP බිටු 32 (bit) මෙන්ම බිටු 64 (bit) පද්ධති මතද ක්‍රියාත්මක වෙයි. නමුත් වින්ඩෝස් මෙහෙයුම් පද්ධතිය සදහා ඉදරිපත් කර ඇති සංස්කරණය බිටු 32 දී පමණක් ක්‍රියා කරයි. මෙහෙයුම් පද්ධති ගැලපීම් ක්‍රමවිධි යොදාගනිමින් අපට මෙම තත්වය මඟ හරවා ගත හැක. 

## භාවිත 
PHP යනු සර්ව කාර්ය විධානාවලි භාෂාවකි. මෙය විශේෂයෙන්ම සුදුසු වන්නේ වෙබ් නිර්මාණයන් සදහායි. PHP සාමාන්‍යයෙන් වෙබ් සේවාදායකයක් මත ක්‍රියාත්මකක වේ. ඔනෑම PHP දත්ත සටහනක් ක්‍රියාත්මක කිරීම සිදුකරනු ලබන්නේ PHP ධාවකය (runtime) මගිනි. මේ ක්‍රමය මගින් ගතික වෙබ් පිටු නිරුපණය කිරීම සිදු කරනු ලැබේ. මීට අමතරව විධාන රේඛාව මත විධාන සටහන් කිරීම මගින්ද සේවාලාභියා සතුව ඇති විචල්‍ය පරිශිලක අතුරු මුහුණතක් භාවිතයෙන්ද ක්‍රියාත්මක විය හැක. බොහෝ වෙබ් සේවා දායකයන් හා මෙහෙයුම් පද්ධති මත PHP පහසුවෙන් ස්ථාපනය කල හැක. තව දුරටත් මෙය බොහෝ පරිගණක දත්ත ගබඩා සමගද භාවිතා කල හැක. PHP සම්පූර්ණයෙන්ම නිදහස් මෘදුකාංගයකි (නිදහස් බව පවතින්නේ මුදල් මත නොවේ). එම නිසා අවශ්‍ය නම් PHP මුලාශ්‍ර කේත සමපූර්ණයෙන්ම ලබා ගැනීමෙන් අනතුරුව තමාට අවශ්‍ය ලෙස වෙනස් කම් කර භාවිතා කිරීමටද හැකියි.

පටන්ගැනීමේදි PHP භාවිතා කරනු ලැබූයේ පෙරහනයක් ලෙසිනි. මූලික වශයෙන් එය දත්ත සමුදායක් (බොහෝවිට අක්ෂර) හා PHP විධාන සහිත ව සටහනකින් ආදානය කර ගනු ලැබේ. ඉන් අනතුරුව එල සකස් කර තවත් දත්ත සමුදායක් ලෙස ප්‍රතිදානයනට යොමු කරනු ලැබේ. සාමාන්‍යයෙන් ප්‍රතිදානය HTML වේ. PHP4 සිට විධාන විග්‍රහකය දත්ත ද්වියාංගී කේත ලෙස ප්‍රතිදානය කරනු ලැබේ. එම දත්ත අවසාන ප්‍රතිඵලය බවට පත් කරනු ලැබූයේ සෙන්ඩ් යාන්ත්‍රණය මගිනි. මෙය සමස්ත ක්‍රියාකාරීත්වය සීග්‍ර කිරීමට හේතුවක් විය.
 
වර්තමානය වන විට PHP හි මූලික අරමුණ සේවාදායක විධානාවලි සටහන් කිරිමයි. මෙහි ක්‍රියාකරීත්වය මයික්‍රාසොෆ්ට් ආයතනයේ Active Server Pages හා ඔරකල්හි (පෙර සන් මයික්‍රොසිස්ටම්ස්) Java Sever Pages වල ක්‍රියා කාරීත්වයට සමාන වෙයි. මේ වන විට PHP සතුව බොහෝ දත්ත සැකිලි අන්තර්ගතව ඇත. මේ නිසා ඉතා සිග්‍රව මෘදුකාංග ගොඩනැංවීම සිදුකල හැක. මින් සමහරක් ලෙස CakePHP, Symfony, CodeIgniter සහ Zend Framework හදුන්වා දිය හැක. 

වෙබ් නිර්මාණකරණයේදී LAMP හා WAMP මෘදුකාංග කට්ටල බොහෝ සෙයින් ජනප්‍රිය වී ඇත. මෙහිදි LAMPP යනු Linux, Apache, MySql, හා PHP ත් WAMP යනු Windows, Apache, MySql, PHP යන්නත් වෙයි. (P අකුරින් සමහර අවස්ථා වලදී python , perl ද දැක්වේ).

2007 අප්‍රේල් මස වන විට වෙබ් අඩවි මිලියන 20 PHP සහිත සේවාදායකක වල ස්ථාපනය කර ඇත. PHP මොඩුයලය මේ වන විට් වඩාත්ම ජනප්‍රිය Apahe මොඩුලය බවට පත්වී ඇත. වැදගත් බොහෝ වෙබ් අඩවි මේ වන විට PHP වලින් නිර්මණය කර ඇත. මේවා අතර Facebook හි මුහුණත, විකිපීඩියා (මීඩියාවිකි), Yahoo!, MyYearbook, Digg, ජූම්ලා, වර්ඩ්ප්‍රෙස්, මුල් දින වල YouTube, Drupal සහ Tagged විශේෂ වේ.

## ආරක්ෂාව 
ඇමරිකාවේ ජාතික අවදානම් සහිත දත්ත ගබඩාවේ පරිගණක මෘදුකාංග සියල්ලකම පාහේ ඇති අඩුපාඩු සටහන් කර ඇත. මේ දත්ත ගබඩාවෙ අඩංගු දත්ත වලින් 2004 වන විට 20% PHP වලට අදාල විය. 2005 වන ටික 28%ද, 2006 වන විට 43% 2007 දී 36% හා 2008 වන විට 35% යනාදි වශයෙන් මෙහි අගයන් සටහන් විය. මේ බොහොමයක් ගැටළු දුරස්ථ පරිගණකයක් මගින් තොරතුරු ලබාගනීමේ තර්ජනයන් පිලිබදව වේ. විශේෂයෙන් දත්ත මූලයන්ගෙන් තොරතුරු සොරාගැනීමත්, අනවශ්‍ය විධානාවලි ගොනු ක්‍රියාත්මක් කරවා ගැනීමත් මෙහිදි විශේෂයෙන් දැක්විය හැකි වේ. 

මේ බොහොමයක් වැරදි වලට හේතුව පරිගණක භාෂාව නොව භාවිතා කරන්නන් නිවැරදි තත්ත්ව පාලනයකින් තොරව උපදෙස් කේතගත කිරිමයි. පරිගණයක භාෂාවේ ඇති අඩුපාඩු නිසා සිදු වන ගැටළු, මුළු ප්‍රමාණයෙන් 1%ටත් අඩුය. මෙය, සමහර පරිගණක භාෂා කේතකරුවන් විශ්වාස නොකිරීමක් දැකිය හැක. මෙහිදි දත්ත පිටස්තරයෙකු විසින් ඇතුළු කිරීමේදි අනුගමනය කල යුතු ක්‍රම යනාදිය එහිදිම පරික්ෂාවට ලක්කරනු ලැබේ. මෙවැනි ක්‍රමයක් PHP සදහාද හදුන්වා දීමට කටයුතු කරනු ලැබුවද එය බොහෝ අවස්ථාවන්හීදි ප්‍රතික්ෂේප විය.

## වාග් රීතිය 
PHP සැලකිල්ලට ගනුලබන්නෙ එයට අදාල පරිසිමයන් (delimiters) අතර පවතින කේත පමණි. එයින් පිටත පවතින කිසිදු සටහනක් විග්‍රහ කිරීමෙන් එය වලකී. වඩාත්ම ප්‍රසිද්ධ පරිසීමකය ලෙස  අකාරයට ද මෙය භාවිතා කල හැක.  ආකරයෙන්ද මෙය භාවතා කල හැකි මුත් එය වඩාත් සුදුසු ක්‍රමයක් ලෙස සැල කිය නොහැක. මන්ද එල සෙවා දායකය මත රදා පවතින බැවිනි. මේ සියලු ක්‍රමයන්හි මූලික අරමුන සාමාණ්‍ය html PHP සටහන් වලින් වෙන් කර හදුනා ගැනීමයි. 

මෙහි මුල් අකාරයේ පරිසීමකය එනම්   XHTML හා XML සටහන් වලදී නිවැරදි සැකසුම් රීති වලට පරිවරතනය වේ. මේ අනුව PHP අවසානයේදී තම දත්ත රදවා තබා ගන්නෙ XML සටහන් ආකාරයටයි. විචල්‍ය යන් $ ලකුණක් මගින් ආරම්භ කල යුතුය. නමත් භාවිතයට පෙර නිරූපණයක් අපේක්ෂා නොකරයි. (" ") මගින් විචල්‍යයක අගය අනුලකුණු වැලක්(string) තුල සටහන් කිරීමට හැකියාව ලැබේ. හිස් පේලි ගැන සැලකීමක් දක්වනු නොලැබේ. විධාන දෙකක් වෙන් කිරීම සදහා ( ; ) භාවිතා කරනු ලබයි. සටහන් තැබීම සදහා /* */ ත් // # යන ක්‍රම තුනම භාවිතයට ගත හැක. මෙහිදී // හා # එක පේලියේ සටහන් තැබීම සදහා භාවිතා කරනු ලැබේ. 
දත්ත වෙබ් බ්‍රව්සරය වෙතට ප්‍රතිදාන කිරීම සදහා මූලික වශයෙන් සුප්‍රසිද්ධ echo විධානය භාවතිතා කරයි. 

PHP හි මූලික පද බොහෝ C බස මත ගොඩ නැගුන ඉහල භාශාවල රිතින්ම භාවතයෙන් ගොඩ නැගී ඇත. if , for ,while ආදිය අනෙකුත් පරිගණක භාශාවල අරුතම ගෙන ඒ. කාර්යයන් වෙන් කිරීමෙ ක්‍රමයද java, C, C++ Perl ආදියට බොහේ සමාන කම් දක්වයි. 

## දත්ත වර්ග 
PHP සංඛ්‍ය මතකයේ තබා ගැනීම සිදු කරන්නනෙ ඒ ඒ මෙහෙයුම් පද්ධතියට විශේෂ වන ආකාරයටය. සාමාණ්‍යයෙන් බිටු 32 පූර්ණ සංඛ්‍යා ලෙසයි. මෙහිදි විටෙක + හො - බව නොදක්වා ඇති සංඛ්‍යා + හො - බව දක්වා ඇති සංඛ්‍යා බවට පරිවරථනයක් සිදු විය හැක. මෙය අනෙකුත් භාශා වලට වඩා මෙහදි වෙනස් කමක් දක්වයි. සංඛ්‍ය දක්වීමේද පාදය 10, 16 , 8 භාවිතා කිරීමේ නිදහස පවතී. දශම සංඛ්‍ය දැක්වීම සිදුවන්නේද මෙහෙයුම පදිධතියට විශෙෂ වන ආකරයටයයි. මෙහිදී සාමාණ්‍ය දශම තිත භාවතා කල හැකි අතර නැතහොත් විද්‍යාත්මක අංකනය භාවතා කල හැක. PHP සතුව බූලියන(සත්‍ය හො අසත්‍ය බව) දැක්වීමේ ක්‍රමයක් ද පවතීත මෙය Java හා C++ වල ආකාරයම ගනී. මෙහදි 0 අසත්‍ය ලෙසත් 0 නොවන ඔනැම සංඛ්‍ය වක් සත්‍ය ලෙසද ගනී. null වර්ගය කිසිදු අගයක් නොමැති විචල්‍යක් දැක්වීමට භාවතා කරයි.null වරගයට අදාල විය හැකි එකම අගය NULL වේ. Resource දත්ත වර්ගයට අදාල වන දත්ත බොහොවිට වෙනත් මාධය වලින් ලබාගන්න ලද සමපත්වේ. මෙවැනි සමපත් ලබාගනු ලබන්නෙ එකතු කරනු ලැබු දිගුවකිනි(extention). උදාහරණ ලෙස පිනතුර, දත්ත ගොනු දැක්විය හැක. දත්ත ආරාවකට (Arrays) PHP වල භාවතා කල හැකි ඔනැම දත්ත වර්ගයක් දරාගත හැක. එනම් සංඛ්‍යා, වස්තූන්, අණු ලුකණු වැල් යනාදි ඔනෑම වර්ගයක්. දත්ත අනුපිලිවෙල මෙහිදි ආරක්ෂාකාරීව පවතී. මෙහදි යතුරු හා අගයන් යන දෙකම ආරකෂා කාරීව පවතින අතර ඔනැම මොහොතක මේවා මාරු කිරීමද කල හැක. 

සම්මත PHP ලේඛනාගාරය (library) සාමාණ්‍යයෙන් පවතින ගැටලු පහසුවෙන් විසදා ගැනීමේ ක්‍රම ශිල්ප හදුන්වා දෙයි. 

## ශ්‍රිත 
PHP සතුව ශ්‍රිත (functions) සිය ගණනක් ඇත. තව සමහරක් අමතර දිගු ආශ්‍රයෙන් ලබා ගත හැක. මෙම ශ්‍රිත ඉතා හොදන් PHP වෙබ් අඩවිය තුල ලේඛණගත කර තිබේ. නමුත් මෙහිදි නාමික සමප්‍රදායන්ගේ ඇති වෙනස් කම් සැලකිල්ලට ගත යුතුය. තවමත් PHP සතුව පොටවල් (threads) කිහපයක් හරහා ක්‍රියාත්මක වීමේ ක්‍රමයක් නොමැත. එහෙත් කාර්යයන් කිහිපයක් එක විට කිරීමේ හැකියාව එය සතුව පවතී. 

### අතීතයේ 
අතීතයේදී කාර්යයක් කරගැනීමට/ ශ්‍රිතයක් ක්‍රියාත්මක කරගැනීමට එහි නමෙන්ම කතා කල යුතුය. නැතහොත් එම ශ්‍රිතයේ නම අඩංගු විචල්‍යයක් භාවිතා කළ යුතුයි. භාවිත කරන්නන් හට අවශ්‍ය වන ශ්‍රිත ඔනෑම මොහොතක නිර්මාණය කර ගැනීමට පුළුවන. ශ්‍රිත අවශ්‍ය නම් කේත රාමු තුල වුවද අර්ථ දැක්වීම සිදු කළ හැක. එනම් එම ශ්‍රිතය විග්‍රහ වෙනවාද නැද්ද යන්න තීරණය වන්නේ කේතයන් ක්‍රියාත්මක වන මෙහොතේදීමය. ශ්‍රිතයක් ආමන්ත්‍රණය කිරීමේද සෑම විටම වරහන් භාවිතා කළ යුතුය. මෙය බල නොපන එකම අවස්ථාව පරාමිතීන් එකක්වත් නොගන්නා පන්තියක් මගින් වස්තුවක් සකස් කිරීමේදීය. එහිදී new යන වචනය භාවිතා කල යුතුමය. PHP මගින් නාමයක් නොමැති ශ්‍රිතයක් වුවද ගොඩනැංවිය හැක. මෙහිදී create.function() යන ශ්‍රිතය භාවිතා කළ යුතුයි. මේවා සම්පූර්ණයෙන්ම නාමයක් රහිත ශ්‍රිත ලෙස හදුන්වා දීමට නොහැක. කෙසේ වුවත් ශ්‍රිතයක් ක්‍රියාත්ම කරවා ගැනීමට අනිවාර්යෙන්ම එහි බැදියක් හරහා යා යුතුයි. නැතහොත් $function.name() යන්න භාවිතා කල හැක. 

### නවතම 
PHP වැසූ දත්ත කොටස් වලට සහයෝගය ලබා දීමට මේ වන විට කටයුතු කර ඇත. ඉතාම නිවැරදි නාම රහිත ශ්‍රිත සකස් කර ගැනීම සදහා මෙම ක්‍රමය භාවිතා කළ හැකියි. 

 function getAdder($x)
 //r එකතු කරන්න යන අර්ථය ගෙන ඒ. 
 {
    return function ($y) use ($x) {
        return $x + $y;
    };
 }
 
 $adder = getAdder(8);
 echo $adder(2); // "10" යන අගයය දර්ශණය කරවයි.
 //

මෙහිදී getAdder() යන ශ්‍රිතය $x යන විචල්‍ය මගින් ආවරණයක් සකස් කර ගෙන ඇත. මෙහි use යන වදන මෙම ශ්‍රිතයට ඉහල අති $x භාවිතා කරන ලෙස උපදෙස් දීම සිදු කරනු ලබයි. මෙම අභ්‍යන්තර ශ්‍රිතය $y ලෙස තවත් පරාමිතියක් ලබාගනු ලබයි. මෙය එම විචල්‍ය දෙකෙහි එකතුව ඉදිරිපත් කරනු ලබයි. වෙනත් ආකාරයකට දැක්වුව හොත් එම ශ්‍රිතය ගබඩා කර තැබීමක් මෙහිදී දැකිය හැක. 

### වස්තූන් 
මූලික වස්තු කේන්ද්‍රික හැකියාව PHP3 හිදී හදුන්වා දෙන ලද අතර PHP4 හිදී තව දුරටත් වැඩිදියුණු කරන ලදි. PHP5 දී මෙය සම්පූර්ණයෙන්ම නැවතත් මුල සිට රචනා කරන ලදී. මෙහිදී එහි අඩංගු විශේෂාංග ගණන වැඩි කරන ලද අතර ක්‍රියාකාරීත්වයද වැඩි දියුණු කරන ලදි. මුල් අවස්ථා වලදි වස්තූන්ට සලකන ලද්දේ මූලික දත්ත වර්ගයක් ලෙසයි. මෙහි ඇති ගැටළුව වන්නේ වස්තුව වෙනත් තැනකට ගෙන යාමේදී මළු වස්තුවම නව ස්ථානයට පිටපත් වීමයි. හේතුව, වස්තූන් හදුනාගන්නා ලද්දේ එහි අගයන්ගෙන් මිස එහි බැඳීම ආශ්‍රයෙන් නොවීමයි. PHP5 විසින් private හා protected ආකාරයට විචල්‍යයන් දැක්විය හැකි විය. ඒ සමගම සාරාංශ පන්ති හා අවසාන පන්ති සාරංශ ශ්‍රිත අවසාන් ශ්‍රිත යනාදියද හදුන්වා දෙන ලදි. තව දුරටත් පන්ති වල අරම්භයෙද් ක්‍රියත්මක වන යෙදීම් යනාදියද වැරදි හදුනා ගැනීමට සමමත ක්‍රමයක්ද අළුතින්ම හදුන්වා දෙන ලදි. මුහුණත් ක්‍රමයක්ද මෙහිදී හදුන්වා දෙන අතර බහු කුල ප්‍රවෙණිගත කිරීමද අඩංගු විය. foreach යෙදීම සමඟ වස්තූන් භාවිතා කීරීමේ හැකියවන්ද ඉදිරිපත් කරන ලදි. සථිර විචල්‍යයන්, නාමයක් සමග සම්බන්ධ කරන ලදී (එහි ඇති බැදීමකට සම්බන්ධ නොකර).

භාවිත කරන්නා වස්තුවේ පිටපතක් clone වදන භාවිතයෙන් ගොඩ නැගුවහොත් සෙන්ඩ් යාන්ත්‍රණය මුලින්ම _clone() යන ශ්‍රිතය පන්තිය තුල හදුන්වා දී ඇත්දැයි සොයා බලනු ලැබේ. එසේ හදුන්වා දී නොමැති අවස්ථා වලදී සාමාන්‍යයෙන් පවතින ශ්‍රිතය භාවිතා කරනු ලැබේ. මෙය එම වස්තුවේ අගයන් සම්පූර්ණයෙන්ම පිටපත් කරනු ලබයි. _clone() ශ්‍රිතය පන්තිය තුළ හදුන්වා දී ඇත්නම් එය අදාල වස්තුවේ අගයන් පිටපත් වන්නෙ කෙසේද යන්න ගැන වගකීම් සියල්ල දරාගත යුතුය. භාවිතා කරන්නන්ගේ පහසුව තකා යාන්ත්‍රණය, අදාල වස්තුවේ සියලුම අගයන් පිටපත් කිරීමට පහසුකම් සලස්වා ඇත. එම නිසා අවශ්‍ය වන්නෙ අවශ්‍ය තැන්හීදී සුදුසු වෙනස්කම් කිරීම පමණි.

## වේග ප්‍රශස්තිකරණය 
වෙනත් විධානාවලි භාෂාවන් අයුරින්ම මෙහි කේතද මනුෂ්‍යයින්ට කියවිය හැකි ආකාරයෙන් රදවා තබාගනු ලැබේ. පසුව එය අවශ්‍ය අවස්ථාවේදි සකස් කර ධාවනය කරනු ලැබේ. මෙසේ වෙබ් පිටුව වෙත පිවිසෙන සෑම අවස්ථාවකම මුල සිට පිටුව සම්පාදනය කර ඉදිරිපත් කරනවාට වඩා එක වරින් සකස් කර ද්වියාංගී කේත රදවා තබා ගත හැකි මෙවලම්ද පවතී. (උදා. phc, roadsend)

කේත වැඩි දියුණු කරන මෙවලම් වල අදහස වෙබ් පිටුව දිස්වීමට යන කාලය අවම කිරීමයි. ස්වභාවයෙන්ම PHP සම්පාදක වල ලක්ෂණය වනුයේ සකස් කරන අතරතුර එහි ප්‍රශස්තිකරණද සිදු වීමයි. උදාහරණ ලෙස eAccelerator නම් දිගුව භාවිතා කළ හැක. 

ප්‍රශස්තිකරණය කළ හැකි තවත් ආකාරයක් වන්නේ වෙබ් පිටු නැවත භාවිතා කළ හැකි පරිදි 'Opcode' පරිගණක මතක පෙදෙසේ රදවා තබා ගැනීමයි. Opcode මතකය පොදුවේ භාවිතා කරනු ලැබෙන නිසා සෑම පිවීසීමටකටම වෙබ් පිටුව මුල සිට සංස්කරණය කිරීම අනවශ්‍ය වේ. Opcode මතක‍ය PHP6 සමග ඉදිරිපත් කිරීමට බලාපොරොත්තු වන අතර සෙන්ඩ් ප්‍රජාව වෙත ඉදරිපත් කරන ලද සංස්කරණය සමග මේ වන විටද ඇත.

## සම්පත් 
PHP සමග ලබාදෙනු ලබන නිදහස් දත්ත පුස්තකාලය මගින්, සාමාන්‍යයෙන් අවශ්‍ය වන බොහෝ ක්‍රියාදාමයන් ඉතා පහසුවෙන් කරගත හැක. මේ අතර FTP සේවාදායකයන් සම්බන්ධ කර ගැනීම, දත්ත ගබඩා සම්බන්ධ කර ගැනීම, එය තුලටම සමබන්ධ කරන ලද SQL සම්බන්ධතාවය (PostgreSQL, MySQL හා SQLite, LDAP විශේෂ වේ). C පරිගණක භාෂාවේ ඇති බොහෝ පහසුකම් PHP සමග ආරම්භයේ සිටම පවතී. 

ඔබට අවශ්‍ය පහසුකම් සහිත දිගුව C බසින් නිමවා ඉන්පසු PHP සමග භාවිතා කිරීමේ හැකියාවද පවතී. මේවා PHP සමගම සම්පාදනය කළ හැකි අතර, නැතහොත් ගතික ආකාරයෙන් ධාවන අවස්ථාවේදීම ලබාගෙන භාවිතා කළ හැක. මෙවැනි දිගු වින්ඩෝස් මෙහෙයුම පද්ධතියේ API සදහා සහය දැක්වීමට, UNIX ආකාරයේ පද්ධති වල ක්‍රියාකාරීත්වයට සහාය දැක්වීමට, බහු බයිට් අනුලකුණු වැල් සදහා සහාය දැක්වීම සදහා හා සමහර දත්ත සම්පිණ්ඩක භාවිතයට යොදා ගත හැක.

සාමාන්‍යයෙන් භාවිත නොවන ක්‍රියාකාරීත්වයන් ලෙස අන්තර්ජාල චැට් සදහා දක්වන සහාය, සේවාදායකය මත රූප නිර්මාණය කිරීමේ හැකියාව, කථන හැකියාව ආදියද වැදගත්වේ. මෙම දිගු ලබාගත හැකි පහසුම මග PHP සමාජයේ දත්ත පුස්තකාලය භාවතා කිරීමයි. සෙන්ඩ් ආයතනය PHP භාවිත කරන්නන් සහතික කිරීම සදහා විභාග ක්‍රමයක් ද දැනට හදුන්වා දී ඇත.

## මූලාශ්‍ර
## මේ ලිපිත් බලන්න 
* නිදහස් හා විවෘත මූලාශ්‍ර මෘදුකාංග
* ජාවා (පරිගණක ක්‍රමලේඛන බස)

## බාහිර පිටු 
*PHP නිලවෙබ් අඩවිය
*[Tutorial php basics (sinhala)

ප්‍රවර්ගය:අන්තර්ජාල භාෂා
ප්‍රවර්ගය:නිදහස් හා විවෘත මූලාශ්‍ර භාෂා
ප්‍රවර්ගය:හොඳ ම ලිපි