Saturday, November 16, 2024

সহজ বাংলায় পিএইচপি : গাণিতিক অপারেটর

সূচীপত্র


গাণিতিক অপারেটরের ব্যবহার

স্কুলের পাটিগণিতে আমরা যে অপারেটরগুলো ব্যবহার করেছি, পিএইচপিতেও এগুলো একইভাবে কাজ করে। পিএইচপিতে পাঁচ ধরনের গাণিতিক অপারেটর রয়েছে। নিচের টেবিলে অপারেটরগুলোর নাম বর্ণনাসহ দেয়া হলো-

অপারেটরবিবরণ
+দুইটি সংখ্যা যোগ করে
প্রথম সংখ্যা থেকে দ্বিতীয় সংখ্যা বিয়োগ করে
*দুটির সংখ্যাকে গুণ করে
/প্রথম সংখ্যাকে দ্বিতীয় সংখ্যা দিয়ে ভাগ করে
%একে মডুলাস বলে। প্রথম সংখ্যাকে দ্বিতীয় সংখ্যা দিয়ে ভাগ করলে অবশিষ্ট যা থাকে অর্থাৎ ভাগশেষ। যেমন- $a = 13 % 4 স্টেটমেন্টে $a সমান 1 হবে।
**এটি সূচক। $a কে $b এর পাওয়ার বা সূচক হিসেবে বসাবে।
গাণিতিক অপারেটর

পূর্ববর্তী যোগের উদাহরণটিতে আমরা দুটি সংখ্যার যোগ করেছি। একসাথে অনেক অপারেশনও করা যায়। যেমন-

$result = 1 + 2 * 4 + 1;

এক্ষেত্রে কোন অপারেটরের অপারেশনটি আগে ঘটবে সেটি গুরুত্বপুর্ণ। পিএইচপিতে প্রথমে গুণ, ভাগ, যোগ ও সবশেষে বিয়োগ এই ধারাবাহিকতায় অপারেশন বা গাণিতিক কাজগুলো হয়ে থাকে। উপরের স্টেটমেন্টটিতে $result এর ফলাফল হবে 10।

$result = 1 + 2 * 4 + 1 (First it does the multiplication.)
$result = 1 + 8 + 1 (Next it does the leftmost addition.)
$result = 9 + 1 (Next it does the remaining addition.)
$result = 10

ইচ্ছা করলে যে কোন একটি অপারেশনকে আগেও ঘটানো যায়। () প্রথম ব্র্যাকেটের মধ্যে রাখা ভ্যালুর অপারেশন আগে ঘটবে।

$result = (1 + 2) * 4 + 1;

উপরের উদাহরণটি ইকো করলে $result এর ফলাফল হবে 13। অপারেশনটির ক্রম হবে নিচের মতো-

$result = (1 + 2) * 4 + 1 (First it does the math in the parentheses.)
$result = 3 * 4 + 1 (Next it does the multiplication.)
$result = 12 + 1 (Next it does the addition.)
$result = 13

নাম্বার ফরম্যাট করা

সংখ্যা নিয়ে কাজ করার সময় বিশেষ করে বিভিন্ন পণ্যের মূল্য পেইজে দেখানোর সময় টাকায় বা ডলারের নির্দিষ্ট ফরম্যাটে এর পরিমাণটি উল্লেখ করার প্রয়োজন হয়। ডলার এমাউন্ট সবসময় দুইটি দশমিক সংখ্যায় থাকে। কিন্তু পিএইচপি তার নির্দিষ্ট ফরম্যাটে এসব এমাউন্ট ডিসপ্লে করে থাকে। যদি আপনার দেয়া এমাউন্টটি হয় 10.00 পিএইচপি ডিসপ্লে করবে 10। তাই ইচ্ছানুযায়ী নাম্বারকে ফরম্যাট করার জন্য sprint স্টেটমেন্টটি ব্যবহার করা হয়। নিচের স্টেটমেন্টটি সংখ্যাকে ডলার ফরম্যাটের রূপান্তরিত করেছে-

$newvariablename = sprintf(“%01.2f”, $oldvariablename);

এই স্টেটমেন্টটিতে পিএইচপি $oldvariablename এর সংখ্যাটিকে রিফরম্যাট করে $newvariablename এ রাখে যা একটি স্ট্রিং ডাটা। নিচের স্টেটমেন্টগুলো সঠিক ফরম্যাটে টাকার পরিমাণ পেজে ডিসপ্লে করবে-

$price = 25;
$f_price = sprintf(“%01.2f”,$price);
echo “$f_price”;

এই কোডটির পেজে আউটপুট হবে এরকম- 25.00

হাজারের সংখ্যাকে আলাদা করতে , (কমা) দেয়ার জন্য number_format ব্যবহার করতে পারি। নিচের উদাহরণটি কমাসহ এমাউন্টটিকে ডলার ফরম্যাটে রূপান্তর করে-

$price = 25000;
$f_price = number_format($price,2);
echo “$f_price”;

যার আউটপুট হবে- 25,000.00

স্টেটমেন্টটিতে 2 সংখ্যাটি দুইটি দশমিক সংখ্যা বসাতে ব্যবহার করা হয়েছে। প্রয়োজনে যে কোন সংখ্যা বসানো যাবে।

তাছাড়া এমাউন্টের শুরুতে ডলার চিহ্ন বা যে কোন চিহ্ন বসাতে নিচের মতো করে লিখতে হবে-

echo “$” . $f_price;

ক্যারেক্টার স্ট্রিং

ক্যারেক্টার স্ট্রিং হলো কতগুলো ক্যারেক্টারের সারি বা সমষ্টি। ক্যারেক্টার স্ট্রিং বর্ণ, সংখ্যা বা চিহ্ন হতে পারে। যখন একটি সংখ্যা ক্যারেক্টার হিসেবে ব্যবহার করা হয় তা বর্ণ বা স্ট্রিং ক্যারেক্টারের মত কাজ করে। এটা গাণিতিক সংখ্যা হিসাবে কাজ করবে না। যেমন- একটি ফোন নাম্বার শুধুমাত্র দেখানোর জন্য ক্যারেক্টার স্ট্রিং হিসেবে সংরক্ষণ করা হয়, যোগ-বিয়োগ করার প্রয়োজনে নয়।

ভ্যারিয়েবলে স্ট্রিং এসাইন করা

ভ্যারিয়েবলে স্ট্রিং রাখলে ডাবল অথবা সিঙ্গেল কোটেশনের মাধ্যমে পিএইচপিকে বলে দিতে হবে স্ট্রিংটির কোথায় শুরু কোথায় শেষ হয়েছে। যেমন নিচের দুটি স্টেটমেন্টের একটিতে সিঙ্গেল এবং অপরটিতে ডাবল কোটেশন ব্যবহার হয়েছে। কিন্তু দুটি স্টেটমেন্টর আউটপুট একই হবে-

$string = “Hello World!”;
$string = ‘Hello World!’;

তবে সিঙ্গেল কোটেশনকে এপোস্ট্রোপ হিসেবে ব্যবহার করতে গিয়ে সমস্যার সৃষ্টি হতে পারে। যেমন-

$string = ‘It is Shamims’s house’;
echo $string;

এই স্টেটমেন্টটির আউটপুট হবে- It is Shamim

কারণ পিএইচপি Shamim এরপর কোটেশনটি দেখে চিন্তা করে এই স্ট্রিংটি এখানেই শেষ। তাই সিঙ্গেল কোটেশন ব্যবহারে সতর্ক থাকতে হবে। তবে সিঙ্গেল কোটেশন কে ’ (এপোস্ট্রোপ) হিসেবে ব্যবহার করতে এপোস্ট্রোপ এর আগে একটি \ (ব্যাকশ্ল্যাস) ব্যবহার করতে হয়। ব্যাকশ্ল্যাসটি পিএইচপিকে বলে দেয় এটি ক্যারেক্টার স্ট্রিং নয়, এটি একটি এপোস্ট্রোপ মাত্র। এটাকে ক্যারেক্টার এসকেপিং(পলায়ন) বলা হয়। নিচের স্টেটমেন্টটি সম্পূর্ণ বাক্যটিকে ডিসপ্লে করতে পারে-

$string = ‘It is Sally\’s house’;
echo $string;

সিঙ্গেল কোটেশন ও ডাবল কোটেশনের ব্যবহার

পিএইচপি কোডে সিঙ্গেল কোটেশন ও ডাবল কোটেশন ভিন্ন ভাবে কাজ করে থাকে। কোডে সিঙ্গেল ও ডাবল কোটেশন ব্যবহারের কিছু পার্থক্য এখানে তুলে ধরা হলো-

  • ভ্যারিয়েবলেঃ ডাবল কোটেশনের মধ্যে ভ্যারিয়েবল রাখলে পিএইচপি ভ্যারিয়েবলের মানকে ব্যবহার করে আর সিঙ্গেল কোটেশনের মধ্যে রাখলে স্ট্রিং হিসেবে আউটপুট দেখায়। যেমন-
$month = 12;
$result1 = “$month”;
$result2 = ‘$month’;
echo $result1;
echo “<br />”;
echo $result2;

যার আউটপুট হবে

12

$month

  • নতুন লাইন শুরু করতেঃ স্পেশাল ক্যারেক্টার \n পিএইচপিকে একটি নতুন লাইন শুরু করতে বলে। \n কে সিঙ্গেল কোটেশনের মধ্যে রাখলে এটি স্ট্রিং হিসেবে আউটপুট দেখাবে আর ডাবল কোটেশনের মধ্যে রাখলে \n এর পরের অংশ নতুন লাইনে শুরু হবে। যেমন-
$string1 = “String in \ndouble quotes”;
$string2 = ‘String in \nsingle quotes’;

$string1 এর আউটপুট হবে-

String in

double quotes

$string2 এর আউটপুট হবে-

String in \nsingle quotes

  • ট্যাব দেয়াঃ স্পেশাল ক্যারেক্টার \t পিএইচপিতে ট্যাব দিতে ব্যবহার করা হয়। আগের মতো \t কে সিঙ্গেল কোটেশনের মধ্যে রাখলে এটি স্ট্রিং হিসেবে আউটপুট দেখাবে আর ডাবল কোটেশনের মধ্যে রাখলে \t তে একটি ট্যাব বসবে। যেমন-
$string1 = “String in \tdouble quotes”;
$string2 = ‘String in \tsingle quotes’;

$string1 এর আউটপুট হবে-

String in                                 double quotes

$string2 এর আউটপুট হবে-

String in \tsingle quotes

স্ট্রিং এর মধ্যে সিঙ্গেল ও ডাবল কোটেশন, ভ্যারিয়েবল ব্যবহার করায় সতর্কতা অবলম্বন করতে হবে। যেমন নিচের উদাহরণটি দেখলে বিষয়টি স্পষ্ট হবে-

$number = 10;
$string1 = “There are ‘$number’ people in line.”;
$string2 = ‘There are “$number” people waiting.’;
echo $string1,”<br />\n”;
echo $string2;

আউটপুট হবে-

There are ‘10’ people in line.

There are “$number” people waiting.

স্ট্রিং যোগ করা

একটি . (ডট) ব্যবহার করে দুটি বা ততোধিক স্ট্রিং যোগ বা একসাথে করা যায়। একে কনক্যাটেনেশন (concatenation) অপারেটর বলা হয়। উদাহরণস্বরূপ নিচের স্টেটমেন্টটি-

There are ‘10’ people in line.
There are “$number” people waiting.

আউটপুট হবে-

HelloWorld!

লক্ষ্য করলে দেখা যাবে Hello ও World! এর মাঝে কোন স্পেস নেই। কারণ এখানে কোন স্পেস ব্যবহার করা হয়নি। শুধু দুটি স্ট্রিংকে একসাথে করা হয়েছে। এই স্টেটমেন্টটিতে স্পেস যোগ করা হয়েছে-

$stringall = $string1.” “.$string2;

এভাবেও ব্যবহার করা যায়-

$stringall = “Hello”;
$stringall .= “ World!”;
echo $stringall;

যার আউটপুট হবে-

Hello World!

বুলিয়ান ডাটা টাইপ

বুলিয়ান ডাটা শুধু true এবং false ভ্যালু নিয়ে কাজ করে। ভ্যারিয়েবলে নিচের মতো করে বুলিয়ান ভ্যালু এসাইন করা হয়-

$var1 = true;

পিএইচপি ভ্যারিয়েবলকে একটি বুলিয়ান ডাটা টাইপে সেট করে দেয়। কন্ডিশনাল স্টেটমেন্টে ভ্যালু এবং এক্সেপ্রেশনের মধ্যে তুলনা করতে বুলিয়ান ভ্যালু ব্যবহার করতে হয়। যেমন- if স্টেটমেন্ট। নিচের ভ্যালুগুলোকে পিএইচপি false হিসেবে মূল্যায়ন করে-

  • The word false
  • The integer 0
  • The floating-point number 0.0
  • An empty string
  • A string with the value 0
  • An empty array
  • An empty object
  • The value NULL

যদি ভ্যারিয়েবলে কোন ভ্যালু থাকে সেটি false হয় না। পিএইচপি একে true হিসেবে মূল্যায়ন করে।

নাল ডাটা টাইপ

নিচের মতো করে নাল ডাটা টাইপ ভ্যারিয়েবলে এসাইন করতে হয়। যেমন-

$var1 = NULL;

নাল ভ্যালুর কোন ভ্যারিয়েবল কোন ভ্যালু সংরক্ষণ করে না।

এ্যারে

এ্যারে (array) কে জটিল ভ্যারিয়েবলও বলা হয়। এ্যারে একটি ভ্যারিয়েবলে একাধিক ভ্যালু সংরক্ষণ করে এবং সংরক্ষিত ভ্যালুগুলো সটিং করার ক্ষেত্রে এ্যারে গুরুত্বপূর্ণ কাজ করে। উদাহরন স্বরুপ- আপনি একটি ফুলের তথ্য (যেমন- প্রজাতি, রং, মূল্য) $flowerinfo নামের একটি ভ্যারিয়েবলে রাখতে পারেন।

এ্যারে তৈরি করা

এ্যারে তৈরি করার সহজ পদ্ধতি হলো একটি [ ] (স্কয়ার) ব্র্যাকেট বা থার্ড ব্র্যাকেটের মধ্যে ভ্যালু রাখা। নিচের স্টেটমেন্টটি $cities নামে একটি এ্যারে তৈরি করে-

$cities[1] = “Dhaka”;

উপরের স্টেটমেন্টটিতে $cities এ্যারেতে একটি ভ্যালু রয়েছে।

$cities[2] = “Chittagong”;
$cities[3] = “Rajshahi”;

উপরের স্টেটমেন্টগুলোতে $cities এ্যারেতে তিনটি ভ্যালু রয়েছে Dhaka, Chittagong এবং Rajshahi নামে।

এ্যারেতে সংরক্ষিত ভ্যালুকে ডিসপ্লে করতে এ্যারে লিস্টের কী (key) ধরে কল করতে হয়। প্রত্যেকটি কী বা ভ্যালু প্যায়ার একটি ইলিমেন্ট নামে পরিচিত। নির্দিষ্ট কোন ভ্যালুকে পেতে হলে ব্র্যাকেটের মধ্যে থাকা কী ধরে ডাকতে হবে। উপরের উদাহরণটিতে এ্যারের ইলিমেন্ট হিসেবে 1, 2, 3 সংখ্যা ব্যবহার করা হয়েছে। ইলিমেন্ট হিসেবে শব্দ বা বর্ণও ব্যবহার করা যাবে। যেমন-

$capitals[‘DHA’] = “Dhaka”;
$capitals[‘CHT] = “Chittagong”;
$capitals[‘RAJ] = “Rajshahi”;

এর চেয়েও সহজ পদ্ধতিতে এ্যারে কী ডিফাইন করা যাবে। এর জন্য প্রত্যেকটিতে সংখ্যা বা শব্দ ইলিমেন্ট হিসেবে উল্লেখ করতে হয় না। যেমন-

$cities[] = “Dhaka”;
$cities[] = “Chittagong”;
$cities[] = “Rajshahi”;

এভাবে এ্যারে ক্রিয়েট করলে প্রত্যেকটি ভ্যালুর জন্য অটোম্যাটিক একটি সংখ্যা পিএইচপি এসাইন করে দেয়, যা ক্রমিক 0 থেকে শুরু হয়। উদাহরণস্বরূপ এই স্টেটমেন্টটি Dhaka আউটপুট দিবে-

echo “$cities[0]”;

এ্যারেতে ইলিমেন্ট এসাইন না করলে পিএইচপি 0 থেকে নাম্বার এসাইন করে থাকে। এ্যারে নিয়ে কাজ করার সময় একটি সাধারণ ভুল হলো 0 এর বদলে 1 ব্যবহার করা। অনেক সময় ভ্যালু কল করার জন্য প্রথম ভ্যালুটির ইলিমেন্ট 1 হিসেবে ধরা হয়। আসলে এর ক্রমিক শুরু হয় 0 থেকে। আরো সহজ পদ্ধতিতে এ্যারে ব্যবহার করা যায়। যেমন-

$cities = array( “Dhaka”,”Chittagong”,”Rajshahi”);

পূর্বের উদাহরণটির মতো এই এ্যারেটিও প্রত্যেকটি ভ্যালুর জন্য একটি করে অটোমেটিক সংখ্যা ভ্যালুর ইলিমেন্ট হিসেবে এসাইন হয়। এটির মতো শব্দ ব্যবহার করেও এ্যারে তৈরি করা যায়। যেমন এই স্টেটমেন্টটি-

$capitals= array(“DHA” => “Dhaka”, “CHT” => “Chittagong”, “RAJ” => “Rajshahi”);

এ্যারে ভিউ করা

সাধারণত নিচের মতো করে এ্যারের ভ্যালু ইকো করা হয়-

echo $capitals[‘CHT’];

ডাবল কোটেশনের মধ্যে রাখা একটি লম্বা ইকো স্টেটমেন্টে এ্যারে ভ্যালু ডিসপ্লে করতে ভ্যালু নামটিকে দ্বিতীয় বন্ধনীর মধ্যে আবদ্ধ করতে হবে। যেমন-

echo “The capital of Bangladesh is {$capitals[‘DHA’]}<br />”;

এ্যারে থেকে ভ্যালু রিমুভ করা

এ্যারেতে ভ্যালু এসাইন করার পাশাপাশি এ্যারে থেকে ভ্যালু রিমুভও করা যায়। কোন এক সময় হয়তো এ্যারে থেকে কোন একটি ভ্যালু বাদ দেয়ার প্রয়োজন হতে পারে। উদাহরণস্বরূপ নিচের পাঁচটি ইলিমেন্ট দেখুন-

$cities[0] = “Dhaka”;
$cities[1] = “Chittagong”;
$cities[2] = “Rajshahi”;
$cities[3] = “Khulna”;
$cities[4] = “Mymensingh”;

এই এ্যারেটি তৈরিকরার পর আপনার Rajshahi ভ্যালুটির প্রয়োজন শেষ হয়ে যেতে পারে। এজন্য নিচের স্টেটমেন্টটি ব্যবহার করে এ্যারে থেকে Rajshahi ভ্যালুটি রিমুভ করা যাবে।

$cities[3] = “”;

যদিও এই স্টেটমেন্টটি এর ভ্যালুকে একটি শূ্ন্য স্ট্রিংয়ে রূপান্তরিত করেছে, এটা ইলিমেন্টটিকে এ্যারে থেকে সম্পূর্ণ বাদ দিতে পারেনি। পাঁচটি ইলিমেন্টই রয়েছে। সম্পূর্ণ ভাবে একে এ্যারে থেকে বাদ দিতে হলে নিচের স্টেটমেন্টটি দিয়ে আনসেট করে দিতে হবে।

unset($cities[2]);

এখন এ্যারেটিতে মোট চারটি ইলিমেন্ট রয়েছে।

$cities[0] = “Dhaka”;
$cities[1] = “Chittagong”;
$cities[2] = “Khulna”;
$cities[3] = “Mymensingh”;

এ্যারে সটিং করা

পিএইচপিতে এ্যারের একটি গুরুত্বপূর্ণ ও কার্যকরী ফিচার হলো বাছাই (sorting)  করা। পিএইচপি মূলত আমরা যেভাবে ডাটা বসিয়ে থাকি সেইভাবেই সর্টিং করে। যদি আমরা একটি সম্পূর্ণ এ্যারেকে তার ক্রম পরিবর্তন না করে সাধারণভাবে ডিসপ্লে করতে চাই তাহলে এটি যে অর্ডারে রাখা হয়েছে ঠিক সেভাবেই ডিসপ্লে করবে। বিভিন্ন ক্ষেত্রেই আমাদের এই অর্ডার পরিবর্তন করতে হতে পারে। যেমন- এ্যারে রাখা ভ্যালুগুলোকে বর্ণানুক্রমিক অর্ডারে সাজাতে চাইতে পারি। পিএইচপি এ্যারেকে বিভিন্ন ভাবে সর্টিং করতে পারে। কী হিসেবে সংখ্যা ব্যবহার করা এমন একটি এ্যারেকে সর্টিং করতে sort ফাংশন ব্যবহার করা হয়। যেমন-

sort($cities);

এই স্টেটমেন্টটি ভ্যালুগুলোকে সর্টিং করে এবং প্রত্যেকটি ভ্যালুর জন্য নতুন কী এসাইন করে। পিএইচপি প্রথমে সংখ্যা, পরে আপারকেজ টেক্সট এবং সবশেষে লোয়ারকেজ টেক্সট এভাবে সর্টিং করে। উদাহরণস্বরূপ পূর্ববর্তী সেকশনে তৈরি করা এ্যারেকে ব্যবহার করতে পারি।

$cities[0] = “Chattagram”;
$cities[1] = “Rajshahi”;
$cities[2] = “Dhaka”;

sort($cities) স্টেটমেন্টটি ব্যবহার করার পরে-

$cities[0] = “Dhaka”;
$cities[1] = “Chattagram”;
$cities[2] = “Rajshahi”;

সর্টিং করার ক্ষেত্রে মনে রাখতে হবে যে, শব্দ দিয়ে তৈরি করা ইলিমেন্টের এ্যারেকে দিয়ে সর্টিং করলে এটি পুনরায় সংখ্যা দিয়ে সর্টিং হবে আর পিএইচপি শব্দগুলোতে ফেলে দিবে।

assort ফাংশন দিয়ে শব্দের কী ওয়ার্ডের এ্যারেকে সর্টিং করা যায়। এই স্টেটমেন্ট দিয়ে প্রত্যেকটি ভ্যালুর কীগুলো ঠিক রেখে ভ্যালুগুলোকে সর্টিং করে। উদাহরণস্বরুপ-

$capitals[‘CA’] = “Dhaka”;
$capitals[‘TX’] = “Chattagram”;
$capitals[‘OR’] = “Rajshahi”;

asort($capitals); স্টেটমেন্ট ব্যবহারের পরে এ্যারেটি দাড়ায়-

$capitals[‘TX’] = “Chattagram”;
$capitals[‘CA’] = “Dhaka”;
$capitals[‘OR’] = “Rajshahi”;

Related Articles

Stay Connected

0FansLike
3,606FollowersFollow
0SubscribersSubscribe
- Advertisement -spot_img

Latest Articles