PHP Comparison operators
অনেক সময়ই আমাদের কে দুই বা ততধীক variable এর মধ্যে কিছু তুলনা করতে হয় , যেমন দুটি variable সমান কিনা , কোন একটি বড় কিনা ইত্যাদি। পিএইচপিতে এই ধরনের তুলনা করার জন্য যে অপারেটর ব্যবহার করা হয় তাকে বলা হয় Comparison operators।
Comparison operators , দুটি value কে তুলনা করে
trueঅথবাfalseরিটার্ন করে।
এক নজরে PHP Comparison operators।
| Operator | Name | Example | Result |
|---|---|---|---|
| == | Equal | $x == $y | true return করবে যখন $x এবং $y এর মান সমান হবে |
| === | Identical | $x === $y | true return করবে যখন $x এবং $y এর মান সমান হবে এবং এই দুইটি variable ডাটা টাইপ ও একই হবে |
| != | Not Equal | $x != $y | true return করবে যখন $x এবং $y এর মান অসমান হবে। |
| <> | Not Equal | $x <> $y | true return করবে যখন $x এবং $y এর মান অসমান হবে। |
| !== | Not Equal | $x !== $y | true return করবে যখন $x এবং $y এর মান অসমান হবে অথবা তাদের ডাটা টাইপ না মিলবে। |
| > | Greater Than | $x > $y | true return করবে যখন $x এর মান $y এর চেয়ে বড় হবে। |
| >= | Greater or Equal | $x >= $y | true return করবে যখন $x এর মান $y এর চেয়ে বড় হবে অথবা সমান হবে। |
| < | Less Than | $x < $y | true return করবে যখন $x এর মান $y এর চেয়ে ছোট হবে। |
| <= | Less or Equal | $x <= $y | true return করবে যখন $x এর মান $y এর চেয়ে ছোট হবে অথবা সমান হবে। |
Equal ( == )
দুটি value সমান হলে true রিটার্ন করে।
<?php
$a = 'php';
$b = 'php';
var_dump($a == $b);
bool(true)
<?php
var_dump("rayhan" == "rayhan");
bool(true)
value সমান না হলে false রিটার্ন করে।
<?php
var_dump("Rayhan" == "rayhan");
bool(false)
<?php
var_dump(125 == 125);
bool(true)
Equals অপারেটর একটি টাইপ ফ্রি অপারেটর, দুটি ভেল্যু যদি ভিন্ন ডাটা-টাইপেও থাকে তবুও শুধুমাত্র ভেল্যু সমান হলেই true রিটার্ন করে।
<?php
var_dump(125 == "125");
var_dump(999 == "999");
var_dump("56" == 56);
ফলাফল:
bool(true)
bool(true)
bool(true)
Identical ( === )
দুটি ভেল্যু সমান হয়ার পাশাপাশি ডাটা-টাইপও যখন একই হবে কেবল মাত্র তখনই true রিটার্ন করে।
Equals অপারেটর এ দেখেছিলাম ডাটা-টাইপে যাই হোক না কেন , দুটি ভেল্যু সমান হলেই true রিটার্ন করে কিন্তু === অপারেটর শুধুমাত্র তখনই true রিটার্ন করবে যখন একই সাথে ভেল্যু ও ডাটা-টাইপে সমান হবে।
<?php
var_dump("BanglaPHP" === "BanglaPHP");
var_dump("BanglaPHP" === 2017);
var_dump(125 === 125);
var_dump(125 === "125");
var_dump(999 === "999");
ফলাফল:
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)
Not Equal ( != ) / ( <> )
এটি Equals অপারেটরের সম্পুর্ন বিপরীত। Equals অপারেটর এ দুটি ভেল্যু সমান হলে true রিটার্ন হয় কিন্তু এই != অপারেটরে যখন দুটি ভেল্যু অসমান হবে তখন true রিটার্ন করে।
<?php
$a = 10;
$b = 10;
var_dump($a != $b);
ফলাফল:
bool(false)
এখানে দুটি ভেল্যু অসমান নয় তাই false রিটার্ন হয়েছে।
Equals অপারেটরের মত , এটিও একটি টাইপ ফ্রি অপেরেটর।
<?php
var_dump("10" != 150);
var_dump("10" != 105);
ফলাফল:
bool(true)
bool(true)
এখানে দুটি ভেল্যু এর ডাটা-টাইপে এক না। যেহেতু এটি ডাটা-টাইপ এর উপর নির্ভরশীল নয় তাই দুটি ভেল্যু অসমান হওয়ায় true রিটার্ন হয়েছে
Not Equals এর != সাইনটিই বেশি ব্যবহৃত হয়, তবে এই অপারেটরের আরো একটি সাইন আছে।
<> এটি Not Equals অপারেটরের একটি alternative সাইন। != এর মত <> সাইন একই কাজ করে।
<?php
var_dump("hello" <> "Hello");
var_dump("HELLO" <> "Hello");
var_dump("HELLO" <> "HELLO");
ফলাফল:
bool(true)
bool(true)
bool(false)
Not Identical ( !== )
Not Equal অপারেটরের মত এটিও যখন দুটি ভেল্যু অসমান হবে , তখন true রিটার্ন করে , তবে Not Equal এর সাথে এটার ছোট্ট একটি পার্থক্য আছে।
var_dump("HELLO" !== "HELLO");
var_dump("Rayhan" !== "rayhan");
var_dump(125 !== 458);
ফলাফল:
bool(false)
bool(true)
bool(true)
!= অপারেটর শুধুমাত্র ভেল্যু check করে , ভেল্যু অসমান হলেও true রিটার্ন করে। কিন্তু !== অপারেটর ভেল্যু যাচাই করার পাশাপাশি ডাটা-টাইপ কেও যাচাই করে দেখে।
যখন দুটি ভেল্যু এর ডাটা-টাইপ এক হবে এবং তাদের ভেল্যু অসমান হবে , কেবল মাত্র তখনই !== অপারেটর true রিটার্ন করবে।
var_dump("HELLO" !== "Hello");
var_dump("HELLO" !== "HELLO");
var_dump("HELLO" !== "HELLO");
var_dump("HELLO" !== 1222);
ফলাফল:
bool(true)
bool(false)
bool(false)
bool(true)
Greater Than ( > )
একটি ভেল্যু অন্য একটি ভেল্যু থেকে বড় হলে , true রিটার্ন করে।
var_dump(1255 > 125);
var_dump(56 > 125);
var_dump(458 > 125);
ফলাফল:
bool(true)
bool(false)
bool(true)
Less Than ( < )
একটি ভেল্যু অন্য একটি ভেল্যু ঠেকে ছোট হলে , true রিটার্ন করে।
var_dump(1255 < 125);
var_dump(56 < 125);
var_dump(458 < 125);
ফলাফল:
bool(false)
bool(true)
bool(false)
Greater or Equal( >= )
নাম শুনেই বুঝা যাচ্ছে বড় অথবা সমান। অর্থাৎ দুটি ভেল্যু যখন সমান হবে অথবা একটি অন্যটি থেকে বড় হবে , তখনই true রিটার্ন করবে।
<?php
var_dump(458 >= 1255);
var_dump(100 >= 100);
var_dump(25 >= 25);
ফলাফল:
bool(false)
bool(true)
bool(true)
Less or Equal(<=)
দুটি ভেল্যু যখন সমান হবে অথবা একটি অন্যটি থেকে ছোট হবে , তখনই true রিটার্ন করবে।
var_dump(458 <= 1255);
var_dump(100 <= 100);
ফলাফল:
bool(true)
bool(true)
লক্ষনীয়
< , <= , > , >= অপারেটর গুলি শুধুমাত্র numerical ভেল্যুর জন্য কাজ করে।
সারসংক্ষেপ:
<html>
<head>
<title>Comparison Operators</title>
</head>
<body>
<?php
$a = 42;
$b = 20;
if( $a == $b ) {
echo "TEST1 : a is equal to b<br/>";
}else {
echo "TEST1 : a is not equal to b<br/>";
}
if( $a > $b ) {
echo "TEST2 : a is greater than b<br/>";
}else {
echo "TEST2 : a is not greater than b<br/>";
}
if( $a < $b ) {
echo "TEST3 : a is less than b<br/>";
}else {
echo "TEST3 : a is not less than b<br/>";
}
if( $a != $b ) {
echo "TEST4 : a is not equal to b<br/>";
}else {
echo "TEST4 : a is equal to b<br/>";
}
if( $a >= $b ) {
echo "TEST5 : a is either greater than or equal to b<br/>";
}else {
echo "TEST5 : a is neither greater than nor equal to b<br/>";
}
if( $a <= $b ) {
echo "TEST6 : a is either less than or equal to b<br/>";
}else {
echo "TEST6 : a is neither less than nor equal to b<br/>";
}
?>
</body>
</html>
ফলাফল:
TEST1 : a is not equal to b
TEST2 : a is greater than b
TEST3 : a is not less than b
TEST4 : a is not equal to b
TEST5 : a is either greater than or equal to b
TEST6 : a is neither less than nor equal to b