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

results matching ""

    No results matching ""