9. Operators (வினைக்குறி)
மாறிகள் (variables) மற்றும் மதிப்புகள் (values) ஆகியவற்றின் மீது கூட்டல், கழித்தல், பெருக்கல், வகுத்தல் மற்றும் இணைத்தல் மற்றும் இன்னும் பல வேலைகளை செய்வதற்கு வினைக்குறிகள் பயன்படுகின்றன. இது PHP யில் மட்டுமல்ல அனைத்து நிரல் மொழிகளிலேயுமே இருக்கின்றது. வினைக்குறிகள் தனியாக மட்டுமல்லாது ++, –, += போன்று இணைந்த வடிவிலும் இருக்கின்றது.
ஒரு குறிப்பிட்ட வேலைக்காக நிர்ணயிக்கப்பட்டு இருக்கும் மாறிகள் அல்லது மதிப்புகளுடன் இருக்கக் கூடியவை வினைஏற்பிகள் எனப்படும். அத்தகைய வினைஏற்பிகளுடன் (Operands) வினைக்குறிகள் (Operators) தனக்கான வேலைகளைச் செய்கின்றது.
எந்த வகையான வினைக்குறியை (Operator) நாம் பயன்படுத்தப் போகிறோம் என்பதைப் பொருத்தே வினைஏற்பிகளின் இடமும், எண்ணிக்கையும் நிர்ணயிக்கப்படுகிறது.
உதாரணமாக கீழ்காணும் கோவையை(expression) பாருங்கள்
1 + 3;
இ்ந்த கோவையில் (expression) நாம் ஒரு வினைக்குறியையும், இரண்டு வினைஏற்பிகளையும் வைத்திருக்கிறோம். இந்த ‘+’ வினைக்குறி இரண்டு வினைஏற்பிகளின் மதிப்புகளை கூட்டி அந்த மதிப்பை நமக்கு முடிவாக தருகின்றது.
ஒரு கோவை (expressions) முழுமை பெறவதற்காக ஒரு வினைக்குறி மற்ற வினைக்குறியுடன் இணைந்திருக்க முடியும். உதாரணத்திற்கு கீழ்காணும் கோவையை பாருங்கள்
$myAddition = 1 + 3;
மேலே காணும் உதாரணத்தில், $myAddition மாறியால் (variable) அடையாளப்படுத்தப்பட்ட இரண்டு வினைஏற்பிகளின் மதிப்புகள் கூட்டப்பட்டு அதன் முடிவு வழங்குதல் (assignment) வினைக்குறியால் (operator) (=) $myAddition மாறியில் சேமிக்கப்படுகிறது.
ஒவ்வொரு வினைக்குறியும் அவைகளின் வினைஏற்பிகளுடன் எப்படி தொடர்புபடுத்தப்படுகிறது என்பதைப் பற்றி இந்த பகுதியில் பார்க்க இருக்கிறோம்.
எண்கணி மற்றும் வழங்குதல் வினைக்குறிகள் (Assignment Operators):
= (equals) வினைக்குறியால் அடையாளப்படுத்தப்படும் மாறிக்கு மதிப்புகளை வழங்குவதற்காக வழங்குதல் வினைக்குறி (assignment operator) பயன்படுத்தப்படுகிறது. கணித வினைக்காக (Mathematical Operation) வழங்குதல் வினைக்குறி, எண்கணித வினைக்குறியுடன் சில நேரங்களில் இணைந்தும் இருக்கலாம்.
கீழ்காணும் அட்டவணையி்ல் PHP -யில் உள்ள ஏழு வழங்குதல் வினைக்குறிகளும்(Assignment Operators) பட்டியலிடப்பட்டுள்ளது.
வினைக்குறி(Operator) |
வகை(Type) |
விளக்கம்(Description) |
உதாரணம்(Example) |
= | வழங்குதல் | இடதுபுறமாக இருக்கும் வினைஏற்பிகளின்(Operands) மதிப்புகளை வலதுபுறமாக இருப்பதில் சேமிக்கிறது. | $myVar = 30; |
+= | கூட்டுதலும்-வழங்குதலும் | வலதுபுறமாக இருக்கும் வினைஏற்பியின் மதிப்புகளை இடதுபுறமாக இருக்கும் மதிப்புடன்கூட்டி, கிடைக்கும் முடிவை இடதுபுறத்தில் இருக்கும் மாறியிலேயே சேமிக்கிறது. | $myVar = 10;$myVar +=5 |
-= | கழித்தலும்-வழங்குதலும் | வலதுபுறமாக இருக்கும் வினைஏற்பிகளின் மதிப்புகளை இடதுபுறமாக இருக்கும் மதிப்புடன் கழித்து, கிடைக்கும் முடிவை இடதுபுறத்தில் இருக்கும் மாறியிலேயே சேமிக்கிறது. | $myVar = 10;$myVar -= 5; |
*= | பெருக்குதலும்-வழங்குதலும் | வலதுபுறமாக இருக்கும் வினைஏற்பியின் மதிப்புகளை இடதுபுறமாக இருக்கும் மதிப்புடன் பெருக்கி, கிடைக்கும் முடிவை இடதுபுறத்தில் இருக்கும் மாறியிலேயே சேமிக்கிறது. | $myVar = 10;$myVar *= 5; |
/= | வகுத்தலும்-வழங்குதலும் | வலதுபுறமாக இருக்கும் வினைஏற்பியின் மதிப்புகளை இடதுபுறமாக இருக்கும் மதிப்புடன் வகுத்து, கிடைக்கும் முடிவை இடதுபுறத்தில் இருக்கும் மாறியிலேயே சேமிக்கிறது. | $myVar = 10;$myVar /= 10; |
%= | மீதியும்-வழங்குதலும் | வலதுபுறமாக இருக்கும் வினைஏற்பியின் மதிப்புகளை இடதுபுறமாக இருக்கும் மதிப்புடன் Modulo Operation செய்து கிடைக்கும் மீதியை இடதுபுறத்தில் இருக்கும் மாறியிலேயே சேமிக்கிறது. | $myVar = 10;$myVar %= 5; |
.= | சரத்தொடர்இணைப்பும்-வழங்குதலும் | வலதுபுறமாக இருக்கும் வினைஏற்பியின் மதிப்புகளை இடதுபுறமாக இருக்கும் மதிப்புடன் இணைத்து செய்து கிடைக்கும் மதிப்பை இடதுபுறத்தில் இருக்கும் மாறியிலேயே சேமிக்கிறது. | $myName = “Kathirvel”;$myName .= “ Rajendran”; |
உதாரண நிரல்:
<?php
echo “<h3>Assignment</h3>”;
$myVarA = 2500;
$myVarB = “Free Open Source Software”;
echo $myVarA;
echo “<br>”;
echo $myVarB;
//————————
echo “<h3>Addition-Assignment</h3>”;
$myVarC = 240;
$myVarC += 260;
echo $myVarC;
//————————
echo “<h3>Subtraction-Assignment</h3>”;
$myVarD = 1200;
$myVarD -= 500;
echo $myVarD;
//————————
echo “<h3>Multiplication-Assignment</h3>”;
$myVarE = 500;
$myVarE *= 500;
echo $myVarE;
//————————
echo “<h3>Division-Assignment</h3>”;
$myVarF = 1200;
$myVarF /= 200;
echo $myVarF;
//————————
echo “<h3>Modulo-Assignment</h3>”;
$myVar = 10;
$myVar %= 5;
echo $myVar;
//————————
echo “<h3>Concatenation-Assignment</h3>”;
$myName = “Kathirvel”;
$myName .= ” Rajendran”;
echo $myName;
?>
வெளியீடு:
கணித வினைக்குறிகள் (Arithmetic Operators):
எண்கணித வினைக்குறிகள் கணிதம் தொடர்பான வினைகளை செய்கிறது. கீழ்காணும் அட்டவணையில் எண்கணித வினைக்குறிகள் பட்டியலிடப்பட்டுள்ளது.
வினைக்குறி(Operator) | வகை(Type) | விளக்கம்(Description) | உதாரணம்(Example) |
+ | கூட்டல் | இரண்டு வினைஏற்பிகளின் கூட்டல் கணக்கீட்டைச் செய்கிறது | $total = 100 + 250; |
– | கழித்தல் | இரண்டு வினைஏற்பிகளின் வித்தியாசத்தைக் கணக்கிடுகிறது. அதாவது இரண்டு மதிப்புகளைக் கழிக்கிறது. | $total = 250 – 100; |
* | பெருக்கல் | இரண்டு வினைஏற்பிகளை பெருக்குகிறது. | $total = 100 * 200; |
/ | வகுத்தல் | இரண்டு வினைஏற்பிகளை வகுக்கிறது. | $total = 200 / 5; |
% | மீதி | வகுத்தலில் கிடைக்கும் மீதியை அளிக்கிறது. | $total = 200 % 3; |
கீழ்காணும் நிரலைப் பாருங்கள்
<?php
echo “<h3>Addition</h3>”;
$myAdd1 = 240;
$myAdd2 = 260;
$myAddition = $myAdd1 + $myAdd2;
echo $myAddition;
//————————
echo “<h3>Subtraction</h3>”;
$mySub1 = 1200;
$mySub2 = 500;
$mySubtraction = $mySub1 – $mySub2;
echo $mySubtraction;
//————————
echo “<h3>Multiplication</h3>”;
$myMul1 = 500;
$myMul2 = 500;
$myMultiplication = $myMul1 * $myMul2;
echo $myMultiplication;
//————————
echo “<h3>Division</h3>”;
$myDiv1 = 1200;
$myDiv2 = 200;
$myDivision = $myDiv1 / $myDiv2;
echo $myDivision;
//————————
echo “<h3>Modulus</h3>”;
$myMod1 = 10;
$myMod2 = 4;
$myModulus = $myMod1 % $myMod2;
echo $myModulus;
?>
வெளியீடு
ஒப்பீடு வினைக்குறி (Comparison Operators):
இரண்டு மதிப்புகளை ஒப்பிட்டு பார்ப்பதற்காக ஒப்பீடு வினைக்குறி (Comparison Operators) பயன்படுகிறது. ஒப்பீடக்கூடிய இரண்டு மதிப்புகளின் நிலையைப் பொறுத்து true அல்லது false எனும் விடையை அளிக்கிறது. எண்களுடனோ அல்லது சரத்துடனோ (strings) ஒப்பீடு வினைக்குறிகளைப் பயன்படுத்திக் கொள்ளலாம். இரண்டு வினைஏற்பிகளுடன் (Operands) ஒப்பீடு வினைக்குறி பயன்படுத்தப்படுத்தப்படுகிறது. ஒப்பீடு வினைக்குறிகளின் செயல்பாடுகளைப் பற்றி கீழே இருக்கும் அட்டவணையில் தெளிவாக தெரிந்து கொள்ளலாம்.
Operator(வினைக்குறி) | Type(வகை) | Description(விளக்கம்) | Examples(உதாரணம்) |
== | சமம் | இரண்டு வினைஏற்பிகளின் மதிப்பும் சமமாக இருந்தால் true என்பதை திருப்பி அளிக்கிறது. | $myVar = 10;if ($myVar == 10 )
echo ‘myVar equals 10’; |
!= | சமமில்லாத | இரண்டு வினைஏற்பிகளும் சமமாக இல்லையென்றால் true என்பதை திருப்பி அளிக்கிறது. | $myVar = 10;if ($myVar != 20)
echo ‘myVar does not equal 10’; |
<> | சமமில்லாத | இரண்டு வினைஏற்பிகளும் சமமாக இல்லையென்றால் true என்பதை திருப்பி அளிக்கிறது. | $myVar = 10;if ($myVar <>20)
echo ‘myVar does not equal 10’; |
=== | ஒரேமாதிரியான | வினைஏற்பிகளின் வகை மற்றும் மதிப்பு ஆகிய இரண்டும் ஒரே மாதிரியாக இருந்தால் true என்பதை வெளியிடும் | $myVar = 10;$myString = “10”;
if ($myVar === $myString) echo ‘myVar and myString are same type and value’; |
!== | ஒரேமாதிரி அல்லாத | வினைஏற்பிகளின் வகை மற்றும் மதிப்பு ஆகிய இரண்டும் ஒரே மாதிரியாக இல்லாமல் இருந்தால் true என்பதை வெளியிடும் | $myVar = 10;$myString = “10”;
if ($myVar !== $myString) echo ‘myVar and myString are not same type and value. |
< | விடக் குறைவு | முதல் வினைஏற்பி இரண்டாவது வினைஏற்பியை விடக் குறைவாக இருந்தால் true என்பதை வெளியிடும். | $myVar = 10;if ($myVar <20)
echo ‘myVar if less than 20’; |
> | விட அதிகம் | முதல் வினைஏற்பி இரண்டாவது வினைஏற்பியை விட அதிகமாக இருந்தால் true என்பதை வெளியிடும். | $myVar = 20;if ($myVar >10)
echo ‘myVar if less than 20’; |
<= | விடக் குறைவு அல்லது சமம் | முதல் வினை ஏற்பி இரண்டாவது வினை ஏற்பியை விடக் குறைவாகவோ அல்லது சமமாகவோ இருந்தால் true என்பதை வெளியிடும். | $myVar = 10;if($myVar <= 5)
echo ‘myVar is less than or equal to 5’; |
>= | விட அதிகம் அல்லது சமம் | முதல் வினை ஏற்பி இரண்டாவது வினை ஏற்பியை விட அதிகமாகவோ அல்லது சமமாகவோ இருந்தால் true என்பதை வெளியிடும். | $myVar = 10;if ($myVar >= 5)
echo ‘myVar is greater than or equal to 5’; |
ஏரண வினைக்குறிகள் (Logical Operators):
ஏரண வினைக்குறிகள் (Logical Operators) பூலியன் வினைக்குறிகள் என்றும் அழைக்கப்படுகிறது ஏனென்றால் கோவையினுடைய(expression) பகுதிகளை மதிப்பீடு (evaluate) செய்து true (1) அல்லது false (0) எனும் மதிப்பை வெளியீடாக தருகிறது. PHP இல் உள்ள ஏரண வினைக்குறிகள் (Logical Operators) கீழே உள்ள அட்டவணையில் பட்டியலிடப்பட்டுள்ளது.
Operator(வினைக்குறி) | Type(வகை) | Description(விளக்கம்) | Examples(உதாரணம்) |
&& | AND | ஏரண “AND” வினையைச் செய்கிறது. | If ($a <25) &&($b >45)) |
|| | OR | ஏரண ”OR” வினையைச் செய்கிறது. | If (($a <25) || ($b >45)) |
Xor | XOR | ஏரண “XOR” வினையைச் செய்கிறது. | If (($a <25) xor ($b >45)) |
ஏறுமான மற்றும் இறங்குமான வினைக்குறிகள் (Increment and Decrement Operators):
$myMark = 100;
$myMark = $myMark – 1;
என்று கொடுப்பதற்கு பதில் ஏறுமான மற்றும் இறங்குமான வினைக்குறிகளைப் பயன்படுத்தி மிகவும் விரைவாக மேலே உள்ள கணக்கீட்டைச் செய்யலாம். ஏறுமானத்திற்கு ++ என்ற வினைக்குறியையும், இறங்குமானத்திற்கு — என்ற வினைக்குறியையும் PHP பயன்படுத்துகிறது.
இரண்டு வழிகளில் இந்த வினைக்குறியைப் பயன்படுத்தலாம் ஒன்று pre (முன்) மற்றொன்று post (பின்). pre முறையானது (mode) ஏறுமான அல்லது இறங்குமானத்தை கோவையினுடைய (expression) மீதமிருக்கும் பகுதிகளை செயல்படுத்துவதற்கு முன்பு செய்கிறது. உதாரணமாக, ஒரு மாறியின் மதிப்பை வேறொரு மாறிக்கு அளிப்பதற்கு முன்பாகவே அந்த மாறியின் மதிப்பை ஏறுமானம் அல்லது இறங்குமானம் அதாவது அதிகப்படுத்த அல்லது குறைக்க வேண்டுமெனில் நாம் pre ஏறுமானம் அல்லது இறங்குமானத்தைப் பயன்படுத்தலாம்.
post முறையானது (mode) ஏறுமான அல்லது இறங்குமானத்தை கோவையினுடைய (expression) மீதமிருக்கும் பகுதிகளை செயல்படுத்திய பின்பு செய்கிறது. உதாரணமாக, ஒரு மாறியின் மதிப்பை வேறொரு மாறிக்கு அளித்த பின்பு அந்த மாறியின் மதிப்பை ஏறுமானம் அல்லது இறங்குமானம் அதாவது அதிகப்படுத்த அல்லது குறைக்க வேண்டுமெனில் நாம் post ஏறுமானம் அல்லது இறங்குமானத்தைப் பயன்படுத்தலாம்.
வினைக்குறி ஒரு மாறியின் முன்பாகவோ, பின்பாகவோ அல்லது எங்கு அமைகிறது என்பதைப் பொறுத்து pre அல்லது post என்பது அமைகிறது. உதாரணமாக $myMark++ , இங்கு ++ என்பது மாறிக்கு பின்பாக அமைந்திருப்பதால் இது post increment எனப்படுகிறது. ++$myMark என்பதில் ++ என்பது மாறிக்கு முன்பாக அமைந்திருப்பதால் அது pre increment எனப்படுகிறது.
கீழ்காணும் அட்டவணை அதை தெளிவாக விளக்குகிறது.
Operator(வினைக்குறி) | Type(வகை) | Description(விளக்கம்) | Equivalent(சமமானது) |
++$var | முன் ஏறுமானம்(pre increment) | கோவையினுடைய மீத பகுதிகள் பயன்படுத்துவதற்கு முன்பாகவே மாறியின் மதிப்பு அதிகப்படுத்தப்படும். | $var = 10;$var2 = $var + 1;
|
–$var | முன் இறங்குமானம்(pre decrement) | கோவையினுடைய மீத பகுதிகள் பயன்படுத்துவதற்கு முன்பாகவே மாறியின் மதிப்பு குறைக்கப்படும். | $var = 10;$var2 = $var – 1; |
$var++ | பின் ஏறுமானம் | கோவையினுடைய மீத பகுதிகள் பயன்படுத்தப்பட்ட பின்பு மாறியின் மதிப்பு அதிகப்படுத்தப்படும். | $var = 10;$var2 = $var;
$var = $var + 1; |
$var– | பின் இறங்குமானம் | கோவையினுடைய மீத பகுதிகள் பயன்படுத்தப்பட்ட பின்பு மாறியின் மதிப்பு குறைக்கப்படும். | $var = 10;$var2 = $var;
$var = $var – 1; |
சரத்தொடர் இணைப்பு வினைக்குறி (String Concatenation Operator):
இரண்டு மதிப்புகளை இணைத்து ஒரு சரத்தை (string) உருவாக்க சரத்தொடர் இணைப்பு வினைக்குறி (operator) பயன்படுகிறது. (.) நிறுத்தற்குறியின் மூலமாக சரத்தொடர் இணைப்பு வினைக்குறி அடையாளப்படுத்தப்படுகிறது. மதிப்புகள் (values), மாறிகள் (variable), மாறிலிகள் (constants), சரங்கள் (strings) என்று எதில் வேண்டுமானாலும் இதைப் பயன்படுத்திக் கொள்ளலாம்.
எண்களையும், சரத்தையும் இணைத்தல்
echo 4589 . ‘ is my bike registration number’;
மேலே உள்ள நிரலின் வெளியீடு கீழ்காண்பது போன்று இருக்கும்.
4589 is my bike registration number.
செயற்படுத்தும் வினைக்குறி – வழங்கியில் கட்டளைகளை செயற்படுத்துதல் (Execution Operator – Executing Server Side Commands)
முனையத்தில் நாம் இயக்கக்கூடிய கட்டைளைகள் அனைத்தையும், செயற்படுத்தும் வினைக்குறியைப் பயன்படுத்தி இயக்கலாம். PHP யின் பலத்தில் இதுவும் ஒன்று. நமது இணையதளம் எந்த இணைய வழங்கியில் வைக்கப்பட்டுள்ளதோ அந்த இயங்குதளத்தின் கட்டளைகளை இயக்கி நம்மால் வெளியீட்டைப் பெற முடியும்.
(`) குறியீடு செயற்படுத்தும் வினைக்குறியாக பயன்படுத்தப்படுகிறது. நாம் இயக்க வேண்டிய கட்டளைகளை (`) குறியீட்டிற்குள் கொடுக்க வேண்டும். கீழ்காணும் நிரலைப் பாருங்கள். (`) குறியீடு என்பது ஒற்றை மேற்கோள்குறி அல்ல(single quotes). (~) குறியீடு இருக்கும் பொத்தானில் இருக்கக் கூடியது.
<?php
echo `uname -a` . “<br>”;
echo `pwd` . “<br>”;
echo `date` . “<br>”;
?>
வெளியீடு: