പി.എച്ച്.പി.
സചേതന വെബ് താളുകൾ നിർമ്മിക്കുവാൻ വേണ്ടി നിർമ്മിക്കപ്പെട്ടിട്ടുള്ള കമ്പ്യൂട്ടർ സ്ക്രിപ്റ്റിങ്ങ് ഭാഷയാണ് പി.എച്ച്.പി. സെർവർ-വശ സ്ക്രിപ്റ്റിങ്ങാണ് ഇതിന്റെ പ്രധാന ഉപയോഗം. കമാൻഡ്ലൈനിലും സ്വതന്ത്രമായി പ്രവർത്തിക്കുന്ന ഗ്രാഫിക്കൽ ആപ്ലിക്കേഷനുകളിലും ഇത് ഉപയോഗിക്കാൻ കഴിയും. ഹൈപ്പർടെക്സ്റ്റ് പ്രീപ്രോസസ്സർ (Hypertext Preprocessor) എന്നാണ് പി എച് പിയുടെ പൂർണരൂപം.
1995 ൽ റാസ്മസ് ലെർഡോഫ് ആദ്യമായി പി.എച്ച്.പി നിർമ്മിച്ചത്. ഇപ്പോൾ പി.എച്ച്.പി ഗ്രൂപ്പ് ആണ് പ്രധാനമായും ഇത് നിർമ്മിച്ച് പുറത്തിറക്കുന്നത്. പി.എച്ച്.പി അനുവാദപത്രം പ്രകാരം ഇത് ലഭ്യമാണ്. സ്വതന്ത്ര സോഫ്റ്റ്വെയർ സംഘടന പി.എച്ച്.പി യെ സ്വതന്ത്ര സോഫ്റ്റ്വെയറായാണ് പരിഗണിച്ചിരിക്കുന്നത്. ഏകദേശം എല്ലാത്തരം വെബ് സെർവറുകളിലും ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റത്തിലും പി.എച്ച്.പി സൗജന്യമായി ഉപയോഗിക്കാൻ കഴിയും. 2 കോടിയിലേറെ വെബ്സൈറ്റുകളിലും 10 ലക്ഷത്തിലേറെ വെബ് സെർവറുകളിലും പി.എച്ച്.പി ഉപയോഗിച്ചു വരുന്നു.
വാക്യഘടന
[തിരുത്തുക]പി.എച്ച്.പി ദ്വിഭാഷി(ഇന്റെർപ്രെറ്റെർ) പി.എച്ച്.പി ടാഗ് ആയ(<?php)യുടെയും അവസാന ടാഗ് ആയ( ?>) ഇടയിലുള്ള കോഡ് മാത്രമെ
എക്സികുട്ട് ചെയ്യുകയുള്ളൂ. സാധാരണ ഉപയോഗിക്കുന്ന <?php ?> ടാഗിനു പുറമെ <script language="php"> ഉം </script> ഉപയോഗിക്കാം.കൂടാതെ ചുരുക്കെഴുത്തു രൂപമായ <? ?> അല്ലെങ്കിൽ <?= ?> ടാഗ് ഉപയോഗിക്കാം.
ഉദാഹരണം
[തിരുത്തുക]
<body>
<?php
echo 'Hello World';
/* echo("Hello World"); works as well,
although echo isn't a function, but a
language construct. In some cases, such
as when multiple parameters are passed
to echo, parameters cannot be enclosed
in parentheses. */
?>
</body>
കമന്റുകൾ
[തിരുത്തുക]പി എച് പിയിൽ ഒറ്റ വരി കമന്റുകൾക്കായി രണ്ടു ഫോർവേഡ് സ്ലാഷുകളും (//) ഒന്നിൽ കൂടുതൽ വരികൾ ഉള്ള കമന്റുകൾക്കായി /* ഉം */ ആണ് ഉപയോഗിക്കുന്നത്.
ഉദാഹരണം
[തിരുത്തുക]
<html>
<body>
<?php
//ഇത് ഒരു ഒറ്റ വരി കമന്റ് ആണ്
/*
ഇത്
ഒന്നിൽ കൂടുതൽ
വരികൾ ഉള്ള
കമന്റ് ആണ്
*/
?>
</body>
</html>
വേരിയബൾ
[തിരുത്തുക]പി ഏച്ച് പി വെരിയബിൾ തുടങ്ങുന്നതു '$' പ്രതീകത്തിലാണ്.
ഉദാഹരണം - $x,$y,$_test . തെറ്റായ വെരിയബിൾ - $34,$89rt,$ fgf, $34 gg
ഉദാഹരണം
[തിരുത്തുക]
<?php
$txt="Wikipedia";
$x=28;
?>
ഇവിടെ Wikipedia എന്നത് ഒരു സ്ട്രിംഗ് വെരിയബിളും 28 എന്നത് ഒരു സംഖ്യാ വെരിയബിളും ആണ്.
വെരിയബിളുകളുടെ വ്യാപ്തി (scope)
[തിരുത്തുക]ഒരു സ്ക്രിപ്റ്റിൽ ഒരു വെരിയബിൾ ഉപയോഗിക്കാനാവുന്ന ഭാഗങ്ങളെ ആണ് അതിന്റെ വ്യാപ്തി അല്ലെങ്കിൽ scope എന്നതുകൊണ്ട് ഉദ്ദേശിക്കുന്നത്. പി എച് പിയിൽ നാല് വ്യത്യസ്ത scopeകൾ ആണ് ഉള്ളത്.
- ലോക്കൽ
- ഗ്ലോബൽ
- സ്റ്റാറ്റിക്ക്
- പരാമീറ്റർ
ലോക്കൽ വ്യാപ്തി
[തിരുത്തുക]ഒരു ഫങ്ഷന്റെ ഉള്ളിൽ ഡിക്ലയർ ചെയ്തിരിക്കുന്ന ഒരു വെരിയബിൾ ആ ഫങ്ഷനിൽ മാത്രമേ ഉപയോഗിക്കാൻ കഴിയുകയുള്ളൂ. ഇത് ലോക്കൽ വ്യാപ്തി എന്ന് അറിയപ്പെടുന്നു.
ഉദാഹരണം
[തിരുത്തുക]
<?php
$x = 65; // ഗ്ലോബൽ വ്യാപ്തി
function function_name()
{
echo $x; // ലോക്കൽ വ്യാപ്തി
}
function_name();
?>
മുകളിൽ കാണിച്ചിരിക്കുന്ന സ്ക്രിപ്റ്റിൽ ഔട്പുട്ട് ഉണ്ടാവില്ല. കാരണം x എന്ന വെരിയബിൾ ഗ്ലോബൽ ആണ്. പക്ഷെ function_name() എന്ന ഫങ്ഷനിൽ നിന്ന് നാം വിളിക്കുന്നത് xൻറെ ലോക്കൽ മൂല്യം ആണ്. അങ്ങനെ ഒന്ന് നിലവിൽ ഇല്ല.
ഗ്ലോബൽ വ്യാപ്തി
[തിരുത്തുക]യാതൊരു ഫങ്ഷനുകളുടെയും ഉള്ളില്ലല്ലാതെ ഡിക്ലയർ ചെയ്തിരിക്കുന്ന ഒരു വെരിയബിൾ ആണ് ഗ്ലോബൽ വെരിയബിൾ. ഒരു സ്ക്രിപ്റ്റിൽ ഏതു ഭാഗത്തും ഉപയോഗിക്കാൻ സാധിക്കും പക്ഷെ ഫങ്ഷനുകളുടെ ഉള്ളിൽ ഉപയോഗിക്കണമെങ്കിൽ global എന്ന കീവേർഡ് ഉപയോഗിക്കേണ്ടതുണ്ട്.
ഉദാഹരണം
[തിരുത്തുക]
<?php
$x = 5;
$y = 10;
$z = 0;
function my_function()
{
global $x, $y, $z;
$z = $a + $b;
}
my_function();
echo $z;
?>
മുകളിൽ കാണുന്ന സ്ക്രിപ്റ്റിന്റെ ഔട്പുട്ട് 15 ആയിരിക്കും. ഇതിന്റെ പ്രവർത്തനം ഒന്ന് നോക്കാം.
- ആദ്യം നാം $x, $y, $z എന്നീ വെരിയബിളുകൾക്ക് യഥാക്രമം 5, 10, 0 എന്നീ മൂല്യങ്ങൾ കൊടുക്കുന്നു.
- പിന്നീട് my_function() എന്ന ഫങ്ഷനിൽ നിന്ന് $x, $y, $z എന്നിവയുടെ മൂല്യം global എന്ന കീവേർഡ് ഉപയോഗിച്ച് സ്വീകരിക്കുന്നു.
- അതിനുശേഷം $x, $y എന്നിവയുടെ തുക $z ലേക്ക് സൂക്ഷിക്കുന്നു.
- അവസാനമായി echo ഉപയോഗിച്ച് $zൻറെ മൂല്യം പ്രിന്റ് ചെയ്യുന്നു.
സ്റ്റാറ്റിക്ക് വ്യാപ്തി
[തിരുത്തുക]സാധാരണഗതിയിൽ നാം ഒരു വെരിയബിൾ ഉപയോഗിക്കുമ്പോൾ ആ ഫങ്ഷൻ അവസാനിക്കുമ്പോൾ ആ വെരിയബിൾ തനിയെ ഡിലീറ്റ് ചെയ്യപ്പെടും. പക്ഷെ ചില അവസരങ്ങളിൽ ആ വെരിയബിൾ ഡിലീറ്റ് ചെയ്യേണ്ട എന്ന് ഡെവലപ്പർ തീരുമാനിച്ചേക്കാം. അത്തരം സന്ദർഭങ്ങളിൽ ആണ് നാം സ്റ്റാറ്റിക്ക് വ്യാപ്തി ഉപയോഗിക്കുന്നത്. ഇതിനായി വെരിയബിൾ ഡിക്ലയർ ചെയ്യുമ്പോൾ നാം static എന്ന കീവേർഡ് ഉപയോഗിക്കുന്നു.
ഉദാഹരണം
[തിരുത്തുക]
static $x = 100;
പരാമീറ്റർ വ്യാപ്തി
[തിരുത്തുക]ഒരു ഫങ്ഷനിലേക്ക് ലോക്കൽ വെരിയബിളിന്റെ മൂല്യം പാസ് ചെയ്യപ്പെടേണ്ടതായ ആവശ്യം വരുമ്പോൾ ആണ് പരാമീറ്റർ വ്യാപ്തി ഉപയോഗിക്കുന്നത്. അത് ഫങ്ഷൻ ഡിക്ലയർ ചെയ്യുന്നതിനോടൊപ്പം ആണ് ഡിക്ലയർ ചെയ്യുന്നത്.
ഉദാഹരണം
[തിരുത്തുക]
function function_name($x,$y)
{
// function code
}
സ്ട്രിംഗ് വെരിയബിളുകൾ
[തിരുത്തുക]അക്ഷരങ്ങൾ ഉൾപ്പെടുന്ന മൂല്യങ്ങൾ സൂക്ഷിക്കുന്നതിനായി ഉപയോഗിക്കുന്ന വെരിയബിളുകൾ ആണ് സ്ട്രിംഗ് വെരിയബിളുകൾ. ഇത് എങ്ങനെ ചെയ്യാം എന്ന് നോക്കാം.
<?php
$x="Wikipedia";
echo $x;
?>
ഈ കോഡ് Wikipedia എന്ന സ്ട്രിംഗ് x എന്ന വെരിയബിളിൽ സൂക്ഷിക്കുകയും അതിനുശേഷം അത് പ്രിന്റ് ചെയ്യുകയും ചെയ്യുന്നു. ഒരു സ്ട്രിംഗ് വെരിയബിളിന് മൂല്യം കൊടുക്കുമ്പോൾ " " ചിഹ്നങ്ങൾ തുടക്കത്തിലും അവസാനവും കൊടുക്കണം എന്ന് പ്രത്യേകം ഓർക്കുക.
ഓപ്പറേറ്ററുകൾ
[തിരുത്തുക]Operator | Name | Example | Result |
---|---|---|---|
+ | Addition | $x + $y | Sum of $x and $y |
- | Subtraction | $x - $y | Difference of $x and $y |
* | Multiplication | $x * $y | Product of $x and $y |
/ | Division | $x / $y | Quotient of $x and $y |
% | Modulus | $x % $y | Remainder of $x divided by $y |
പി.എച്ച്.പി ഒബ്ജെക്റ്റ് ഓറിയന്റഡ് പ്രോഗ്രാം
[തിരുത്തുക]പി.എച്ച്.പി പ്രോഗ്രാം ഒബ്ജെക്റ്റ് ഓറിയൻറ് രീതിയെ പിന്തുണയ്ക്കുന്ന പ്രോഗ്രാം ഭാഷയാണ്. ഒബ്ജെക്റ്റ് ഓറിയൻറ് പ്രോഗ്രാം ഭാഷയിൽ സാധാരണ കാണുന്ന ക്ലാസ്സ്,ഒബ്ജെക്റ്റ്,പോളിമോർഫിസം ,ഇൻഹെറിറ്റൻസ്,ഇന്റർഫസ് തുടങ്ങിയ ഒബ്ജെക്റ്റ് ഓറിയൻറ് പ്രോഗ്രാം ഭാഷയുടെ എല്ലാ സാധ്യതകളും പി.എച്ച്.പി നല്ല രീതിയിൽ പ്രയോജനപ്പെടുത്തിയിരിക്കുന്നു.
ഉദാഹരണം. ഒരു ക്ലാസ്സ് പി.എച്ച്.പി യിൽ നിർമിക്കാൻ class എന്നാ കീവേർഡ് ഉപയോഗിക്കുന്നു. തുടർന്ന് ക്ലാസ്സിന്റെ പേര് ഉപയോഗിക്കാം.
class myfirstclass {
ക്ലാസ്സിന്റെ ബാക്കി വരുന്ന ഭാഗങ്ങൾ ഇവിടെ എഴുതാം ;
}
തുടർന്ന് ഒബ്ജെക്റ്റ് നിർമിക്കാൻ
ഒബ്ജെക്റ്റ് പേര്= new ക്ലാസ്സിന്റെ പേരു എഴുതുക();
myfirstclass എന്ന മുകളിൽ കൊടുത്തിരിക്കുന്ന ക്ലാസ്സിന്റെ ഒബ്ജെക്റ്റ് നിർമിക്കാൻ
$objname =new myfirstclass ();
തുടർന്ന് ഒരു ഫംഗ്ഷൻ എങ്ങനെ നിർമിച്ചു വിളിക്കാം എന്ന് പരിശോധിക്കാം
class myfirstclass {
function fnName () {
echo " This is PHP from WIKI";
}
}
മുകളിൽ fnName () എന്ന ഫങ്ഷൻ myfirstclass എന്ന ക്ലാസ്സിന്റെ അകത്തു നിർമിച്ചു കഴിഞ്ഞു. തുടർന്ന് എങ്ങനെ ഈ ഫങ്ഷൻ വിളിക്കാം.
$objName = new myfirstclass (); $objName ->fnName ();
<?php class arithmatic { public function add ($x ,$y) { $z =$x +$y ; echo "The sum is".$z ; } public function sub ($x ,$y) { $z =$x -$y ; echo "The result is".$z ; } public function mul ($x ,$y) { $z =$x +$y ; echo "The mul is".$z ; } } $obj =new arithmatic (); $obj ->add (2 ,3); $obj ->sub (2 ,3); $obj ->mul (2 ,3); ?>