Comjagat.com-The first IT magazine in Bangladesh
  • ভাষা:
  • English
  • বাংলা
হোম > পিএইচপিতে কন্ট্রোল স্টেটমেন্ট এবং ফাংশন
লেখক পরিচিতি
লেখকের নাম: মর্তুজা আশীষ আহমেদ
মোট লেখা:৭৭
লেখা সম্পর্কিত
পাবলিশ:
২০০৮ - মে
তথ্যসূত্র:
কমপিউটার জগৎ
লেখার ধরণ:
পিএইচপি
তথ্যসূত্র:
পাঠশালা
ভাষা:
বাংলা
স্বত্ত্ব:
কমপিউটার জগৎ
পিএইচপিতে কন্ট্রোল স্টেটমেন্ট এবং ফাংশন



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

কন্ট্রোল স্টেটমেন্ট

পিএইচপি ধারাবাহিকের শুরুর দিকে আমরা জেনেছি যে, যা কিছুই আমরা কোডে লেখি তার ভগ্নাংশ বা একবারে একই লাইনে যে কাজ সম্পাদন করা হয় তাকেই স্টেটমেন্ট বলে৷ একেকটি স্টেটমেন্ট শেষ করা হয় সেমিকোলন (;)দিয়ে৷ অনেক সময় কোডের মধ্যে একই লাইনে সেমিকোলন দিয়ে একাধিক স্টেটমেন্ট লেখা হয়৷ কোডিংয়ের সময় কিছু বিশেষ স্টেটমেন্ট লেখা হয় যা দিয়ে প্রোগ্রাম বা এর কোনো অংশ নিয়ন্ত্রণ করা হয়৷ এ ধরনের স্টেটমেন্টকে কন্ট্রোল স্টেটমেন্ট বলা হয়৷ কোডিং করার সময় কোনো বিশেষ উদ্দেশ্যে শর্ত ব্যবহার করতে চাইলে কন্ট্রোল স্টেটমেন্ট ব্যবহার করা হয়৷

পিএইচপিতে কন্ট্রোল স্টেটমেন্ট পুরোপুরি সি, সি++, জাভা এই ল্যাঙ্গুয়েজগুলোর মতো৷ শুধু অনুরূপ নয়, এই ল্যাঙ্গুয়েজগুলোতে লেখা কোনো কন্ট্রোল স্টেটমেন্ট পিএইচপিতে কাজ করবে৷ কন্ট্রোল স্টেটমেন্টকে অনেক প্রোগ্রামার কন্ট্রোল স্ট্রাকচারও বলে থাকেন৷ পিএইচপিতে যে কন্ট্রোল স্টেটমেন্টগুলো ব্যবহার করা হয় সেগুলো হচ্ছে if, else, elseif, while, do-while, for, foreach, break, switch, declare, continue, return ইত্যাদি৷ তবে কিছু কিছু কন্ট্রোল স্টেটমেন্ট আছে যেগুলো দিয়ে লুপের কাজ করা হয়৷ যিরষব, ফড়-যিরষব, ভড়ৎ এই কন্ট্রোল স্টেটমেন্টগুলো দিয়ে লুপের কাজ করা যায়৷ লুপ হচ্ছে কোডের মাধ্যমে একই কাজ বার বার করার উপায়৷ উদাহরণস্বরূপ বলা যায়, ১ থেকে ১০০ পর্যন্ত যোগ করতে হবে (১+২+৩+..........+১০০)৷ এক্ষেত্রে বারবার যোগ না করে লুপ ব্যবহার করা যায়৷ এই কন্ট্রোল স্টেটমেন্টগুলো কোডে কীভাবে কাজ করে তা প্রথম ও দ্বিতীয় কোডে দেখানো হয়েছে৷ কোডিংয়ের সময় মনে রাখতে হবে সেকেন্ড ব্র্যাকেটের মধ্যে যাই থাকুক না কেন তা কম্পাইলার (ল্যাঙ্গুয়েজ) একটি স্টেটমেন্ট হিসেবে ধরবে৷
if ($a=1 > $b=0) {
echo “a is bigger than b”;
$b = $a;
}
if ($c=1 > $d=0) {
echo “c is bigger than d”;
} else {
echo “c is NOT bigger than d”;
}
if ($e =1> $f=0) {
echo “e is bigger than f”;
} elseif ($e == $f) {
echo “e is equal to f”;
} else {
echo “e is smaller than f”;
}
?>

$i = 1;
while ($i <= 10):
echo $i;
$i++;
endwhile;
do {
if ($j < 5) {
echo “j is not big enough”;
break;
}
$j *= $factor;
if ($j < $minimum_limit) {
break;
}
echo “j is ok”;
} while (0);
for ($k = 1; ; $k++) {
if ($k > 10) {
break;
}
echo $k;
}
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
unset($value);
?>

কোড বিশ্লেণ

প্রথম কোডের ২য় লাইন থেকে ৫ম লাইন পর্যন্ত সেগমেন্টে if কন্ট্রোল স্টেটমেন্ট দেখানো হয়েছে৷ ৬ষ্ঠ লাইন থেকে ১০ম লাইন পর্যন্ত সেগমেন্টে if-else কন্ট্রোল স্টেটমেন্ট দেখানো হয়েছে৷ থেকে ১৭তম লাইনের শেষ সেগমেন্টে elseif কন্ট্রোল স্টেটমেন্ট দেখানো হয়েছে৷ ২য় লাইনে একটি কন্ডিশন দেয়া হয়েছে যাতে দুটো টাইপের মধ্যে কোনটি বড় তা চেক করে দেখে৷ যদি প্রথমটি বড় হয় তাহলে পরের টাইপে প্রথমটির ভ্যালু রাখবে ৪র্থ লাইনে৷ ৩য় লাইনে প্রিন্ট করবে যে কন্ডিশনটি সত্য হয়েছে৷ পরের সেগমেন্টের প্রথম অংশ একই রকম৷ শুধু বষংব ব্যবহার করে দেখানো হয়েছে যে যদি কন্ডিশন সত্য না হয় তাহলে বষংব কাজ করবে এবং তখন কোডের ৯ম লাইন কাজ করবে৷ শেষ সেগমেন্টের প্রথম এবং শেষ অংশ একই রকম৷ শুধু মাঝে ১৩তম এবং ১৪তম লাইনে বষংবরভ ব্যবহার করা হয়েছে৷ এক্ষেত্রে ১১তম লাইন কম্পাইল করার সময় কম্পাইলার চেক করে দেখবে কন্ডিশন সত্য কি-না৷ সত্য না হলে ১৩তম লাইনে চেক করবে যে elseif কন্ডিশনটি সত্য কি-না৷ elseif ব্যবহার করা হয় যদি if এর কন্ডিশন ফেইল করে তাহলে বিকল কন্ডিশনের ব্যবস্থা রাখা৷ আর সব কন্ডিশন ফেইল করলে else কাজ করবে৷

দ্বিতীয় কোডে চারটি সেগমেন্ট আছে৷ ২য় লাইন থেকে ৬ষ্ঠ লাইন, ৭ম লাইন থেকে ১৬তম লাইন, ১৭তম লাইন থেকে ২৩তম লাইন এবং ২৪তম লাইন থেকে ২৮তম লাইন পর্যন্ত সেগমেন্টে বিভক্ত৷ সেগমেন্টগুলোতে যথাক্রমে while, do-while, for এবং foreach স্টেটমেন্ট নিয়ে কাজ করা হয়েছে৷ এগুলো দিয়ে লুপের কাজ করা হয়েছে৷ প্রথম সেগমেন্টে একটি টাইপ নিয়ে তাতে ভ্যালু হিসেবে ১ রাখা হয়েছে এবং লুপের মাধ্যমে এর ভ্যালু বার বার ১ করে বাড়ানো হয়েছে যতক্ষণ পর্যন্ত না ভ্যালুর মান ১০ হচ্ছে৷ দ্বিতীয় সেগমেন্টে do-while লুপ ব্যবহার করা হয়েছে৷ এখানে দেখানো হয়েছে কিভাবে ভ্যালু তুলনা করা যায়৷ লুপের মধ্যে রভ কন্ট্রোল ব্যবহার করা হয়েছে৷ ৩য় সেগমেন্টে দেখানো হয়েছে কীভাবে for লুপ কাজ করে৷ এই লুপে স্বাভাবিকভাবে এক কাজ বার বার করা যায়৷ কিন্তু কন্ডিশন ব্যবহার করা যায় না৷ এই লুপে k টাইপের মান বার বার ১ করে বাড়ানো হয়েছে যতক্ষণ পর্যন্ত এর মান ৯ হয়৷ শেষ সেগমেন্ট দিয়ে একটি অ্যারের প্রতিটি ভ্যালুর মান বাড়ানো হয়েছে৷ অ্যারে হচ্ছে একই ধরনের কয়েকটি টাইপের সমষ্টি৷ সহজ কথায় বলা যেতে পারে টাইপ দিয়ে তৈরি করা একটি চেইন৷ অ্যারে কীভাবে ডিক্লিয়ার করে তা এই সেগমেন্টে ২৪তম লাইনে দেখানো হয়েছে৷

কোড লেখার পর টাইপগুলোর মান পরিবর্তন করে দেখতে পারেন আসলে কীভাবে কোড কাজ করছে৷

ফাংশন

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

function a()
{
function b()
{
echo “I dont exist until a() is called.\n”;
}
}
a();
b ();
?>

কোড বিশ্লেণ

এখানে ২য় ও ৪র্থ লাইনে দুইটি ফাংশন তৈরি করা হয়েছে৷ a ফাংশনের ভেতরে b ফাংশন তৈরি করা হয়েছে৷ ৬ষ্ঠ লাইনে b ফাংশনের ভেতরে প্রিন্ট করে আউটপুট দেখানো হয়েছে৷ পরে ৯ম ও ১০ম লাইনে আলাদাভাবে দুটো ফাংশনই কল করে দেখানো হয়েছে৷


ফিডব্যাক : mortuza_ahmad@yahoo.com
পত্রিকায় লেখাটির পাতাগুলো
লেখাটি পিডিএফ ফর্মেটে ডাউনলোড করুন
২০০৮ - মে সংখ্যার হাইলাইটস
চলতি সংখ্যার হাইলাইটস