PHP Operators পর্ব -১: PHP তে Operators কি?

এই পর্বে আপনি PHP Operators সম্পর্কে যা জানতে পারবেন :

  • PHP তে Operators কি?
  • PHP তে Operators কত প্রকার? এবং কি কি ?
  • PHP তে Operand কি ?
  • Operator Precedence কি?
  • Operator Associativity কি?

PHP তে Operators কি?

PHP অথবা যেকোনো Programming Language এ Operators হচ্ছে কতগুলো symbol যা PHP Interpreter কে কিছু নির্দিষ্ট mathematical, relational এবং logical সহ আরো অনেক ধরণের কার্য (operation) সম্পাদন করার নির্দেশনা পাঠায়। এবং নির্দেশনা অনুযায়ী PHP Interpreter সেই নির্দিষ্ট কাজের ফলাফল প্রদর্শন করে।

PHP Operators কত প্রকার? এবং কি কি ?

PHP তে Operator মূলত ১১ ধরণের, নিচে Operator গুলোর লিস্ট দেয়া হলো :

  • Arithmetic Operators বা গাণিতিক কাজের Operator: (+,-,*,/,%,**)
  • Assignment Operators বা PHP Variable এ যেকোনো মান (Value) সংরক্ষণের Operator : (=)
  • Bitwise Operators বা PHP তে Binary কাজের Operator :-(&,|,^,~,<<,>>)
  • Comparison Operators বা দুই বা ততোধিক Value এর মধ্যে তুলনা করার Operator :-(==,!=,===,!==,<,>,<=,>=,<>,<=>)
  • Error Control Operators বা Error প্রদর্শনে বাধা দেওয়ার Operator :-(@)
  • Execution Operators বা shell কমান্ডের মাধ্যমে PHP Code সম্পাদন করার Operator :- backticks (`)
  • Incrementing/Decrementing Operators বা 1 করে বৃদ্ধি বা কমানোর Operator:-(++,- -)
  • Logical Operators বা একাধিক অবস্থার বা condition এর উপর ভিত্তি করে সিদ্ধান্ত নেওয়ার Operator:-(&&,||,!,and,or,xor)
  • String Operators বা এক বা একাধিক string এর সাথে জোড়া লাগানোর Operator:-(.)
  • Array Operators বা এক বা একাধিক array কে বিভিন্ন রকমের compare, union করার operator:-(+,==,!=,===,!==,<>)
  • Type Operators বা কোনো একটা PHP Variable কোনো class এর Instance কিনা তা চেক করার operator:-(instanceof)

PHP তে Operand কি ?

Operator এর দুই পাশে যেই সব variable অথবা value থাকে, PHP অথবা যেকোনো Programming Language এর পরিভাষায় একে Operand বলে। নিচের উদাহরণ থেকে বুঝে নেয়া যাক।

<?php
$a=5;
echo $a+5;
?>

এখানে plus sign (+) এর দুই পাশের যথাক্রমে $a এবং 5 এই দুইটা ই Operand আর plus sign (+) টি হচ্ছে Operator

Operator Precedence কি?

PHP অথবা যেকোনো Programming Language এ Operator Precedence হচ্ছে কিছু rules বা নিয়মের সমষ্টি যা দিয়ে প্রোগ্রামিং অথবা যে কোনো গাণিতিক কাজে কোন কাজটি আগে সম্পাদিত হবে তা নির্ধারিত হয়। নিচের উদাহরণ থেকে বুঝে নেয়া যাক।

<?php
echo 1 + 5 * 3; //Output 16 But why not 18?
?>

উপরের কোডের ফলাফল 18 না এসে 16 আসবে। এর মূল কারণ হচ্ছে, আমাদের এখানে ব্যবহৃত দুটি operator এর মধ্যে Operator Precedence Rules অনুযায়ী addition (“+”) Operator টির চেয়ে multiplication (“*”) Operator টি বেশি অগ্রাধিকার প্রাপ্ত । এবার নিচের আরেকটি উদাহরণ লক্ষ্য করা যাক :

<?php
echo (1 + 5) * 3; //Output 18 But why not 16?
?>

উপরের উদাহরণে Parentheses “()” Operator টি Multiplication “*” Operator এর চেয়ে বেশি অগ্রাধিকার প্রাপ্ত হওয়ায়, প্রথমে Parentheses এর মধ্যের addition এর কাজটি সম্পাদিত হয়। তারপর multiplication “*” এর কাজটি সম্পাদিত হয়।

Operator Associativity কি?

Operator Associativity হচ্ছে, PHP অথবা যেকোনো Programming Language এ parentheses অনুপস্থিতিতে একই Precedence এর Operator গুলোর মধ্যে কোন Operator টি অগ্রাধিকার প্রাপ্ত হবে তা নির্ধারণ করা।

PHP তে Operator Associativity কত প্রকার? এবং কি কি ?

PHP তে Operator Associativity দুই প্রকার :
১. Right to Left (অর্থাৎ: ডানদিকের Operator অগ্রগণ্য হবে। )
২. Left to Right (অর্থাৎ: বামদিকের Operator অগ্রগণ্য হবে। )

নিম্নে পিএইচপি Operator Precedence এর একটা তালিকা আছে । সবচেয়ে উপরের Operator টির অগ্রগন্যতা সবচেয়ে বেশি এভাবে এক এক করে নিচে যাবে। এই তালিকাটি মনে রাখা খুব জরুরী। তা না হলে বিভিন্ন Mathmetical এবং Programming এর সমস্যা সমাধান করতে গেলে কাঙ্খিত ফলাফল না ও পেতে পারেন।

Operator Precedence এর উপর ভিত্তি করে Operator গুলোকে ৯ টি ক্যাটাগরি তে করা হয়েছে :

Category এর নামOperator এর নামAssociativity
Unary! ++ —Right to left
Multiplicative* / %Left to right
Additive+ –Left to right
Relational< <= > >=Left to right
Equality== !=Left to right
Logical AND&&Left to right
Logical OR||Left to right
Conditional?:Right to left
Assignment= += -= *= /= %=Right to left

    1 Comment

  1. name
    July 13, 2021
    Reply

    alert(“great article!!!”);

Leave A Reply

Your email address will not be published. Required fields are marked *