পিএইচপি -৫ [কন্ট্রোল স্টেটমেন্ট - if, if...else, switch, while, do...while] - SMH Amiri

সর্বশেষ লিখাসমূহ

পিএইচপি -৫ [কন্ট্রোল স্টেটমেন্ট - if, if...else, switch, while, do...while]




বিভিন্ন কন্ডিশন এর উপর ভিত্তিকরে ভিন্ন ভিন্ন কাজ সম্পাদন(execution)-এর জন্য কন্ডিশনাল(Conditional) স্টেটমেন্ট ব্যবহার করা হয়।


পিএইচপি Conditional স্টেটমেন্ট

আমরা প্রতিনিয়তই বিভিন্ন কোড লিখি, এদের মধ্যে কিছু কোড থাকে যে কোডগুলোকে কোনো কন্ডিশন(Condition) এর উপর ভিত্তি করে রান করাতে হয়। এক্ষেত্রে আমরা কন্ডিশনাল স্টেটমেন্ট এর সাহায্য নিই।

কেননা, Conditional স্টেটমেন্ট ব্যবহার করে অনাকাংক্ষিত কোড রান হওয়া থেকে বিরত রাখা যায়। অর্থাৎ কন্ডিশনের উপর ভিত্তি করে কোড রান হয়।

if স্টেটমেন্ট

কেবল if এর মধ্যে অবস্থিত কন্ডিশন true হলে if এর কোড ব্লক এক্সিকিউট হয়। অন্যথায় প্রোগ্রাম এর কন্ট্রোল কোড ব্লক থেকে বের হয়ে যায়।

if...else স্টেটমেন্ট

if এর মধ্যে অবস্থিত কন্ডিশন true হলে if এর কোড ব্লক এক্সিকিউট হয়, এবং false হলে else এর কোড ব্লক এক্সিকিউট হয়।

if...elseif....else স্টেটমেন্ট

দুই বা তার অধিক কন্ডিশন এর উপর ভিত্তি করে কোড ব্লক এক্সিকিউট হয়।

switch statement

অনেকগুলো কোড ব্লক থেকে একটি কোড ব্লক এক্সিকিউট হয়।


পিএইচপি if স্টেটমেন্ট

কেবল if এর মধ্যে অবস্থিত কন্ডিশন true হলে if এর কোড ব্লক এক্সিকিউট হয়। অন্যথায়, প্রোগ্রাম এর কন্ট্রোল if এর কোড ব্লক থেকে বের হয়ে যায়।

সিনট্যাক্স(Syntax)

if (condition) {
    কন্ডিশন true হলে এই কোড এক্সিকিউট হবে;
}


বর্তমান সময় 20 এর চেয়ে কম হলে নিচের উদাহরণের আউটপুট হবে "দিনটি আপনার জন্য শুভ হোক!"

উদাহরণ
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
$time = date("H");
if($time < "20"){
    echo "দিনটি আপনার জন্য শুভ হোক!";
}
?>

</body>
</html>


ফলাফল
দিনটি আপনার জন্য শুভ হোক!



পিএইচপি if...else স্টেটমেন্ট

if এর মধ্যে অবস্থিত কন্ডিশন true হলে if এর কোড ব্লক এক্সিকিউট হয়, এবং false হলে else এর কোড ব্লক এক্সিকিউট হয়।

সিনট্যাক্স

if (condition) {
    কন্ডিশন true হলে এই কোড এক্সিকিউট হবে;
} else {
    কন্ডিশন false হলে এই কোড এক্সিকিউট হবে;
}


বর্তমান সময় 20 এর থেকে কম হলে নিচের উদাহরণের আউটপুট হবে "দিনটি আপনার জন্য শুভ হোক!" অন্যথায় "শুভ রাত্রি!" হবেঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
$time = date("H");
if($time < "20"){
    echo "দিনটি আপনার জন্য শুভ হোক!";
} else{
    echo "শুভ রাত্রি!";
}
?>

</body>
</html>


ফলাফল
দিনটি আপনার জন্য শুভ হোক!

পিএইচপি if...elseif....else স্টেটমেন্ট

পিএইচপি if...elseif....else স্টেটমেন্ট এর মাধ্যমে দুই বা তার অধিক কন্ডিশন এর উপর ভিত্তি করে কোড ব্লক এক্সিকিউট হয়।

সিনট্যাক্স

if (condition) {
    কন্ডিশন true হলে এই কোড এক্সিকিউট হবে;
} elseif (condition) {
    কন্ডিশন true হলে এই কোড এক্সিকিউট হবে;
} else {
    সকল কন্ডিশন false হলে এই কোড এক্সিকিউট হবে;
}


বর্তামান সময় 10 এর থেকে কম হলে নিচের উদাহরণের আউটপুট হবে "শুভ সকাল!", ২০ এর থেকে কম হলে আউটপুট হবে "শুভ দিন!" অন্যথায় "শুভ রাত্রি!" হবেঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
$time = date("H");
if ($time < "10") {
    echo "শুভ সকাল!";
} elseif ($time < "20") {
    echo "শুভ দিন!";
} else {
    echo "শুভ রাত্রি!";
}
?>

</body>
</html>


ফলাফল
শুভ সকাল!



পিএইচপি switch স্টেটমেন্ট

অনেক কোড ব্লক থেকে একটি মাত্র কোড ব্লককে সম্পাদন(execute) করার জন্য switch স্টেটমেন্ট ব্যবহার করা হয়।

switch সিনট্যাক্স
switch (parameter) {
    case value1:
        parameter = value1 হলে এই কোড এক্সিকিউট হবে;
        break;
    case value2:
        parameter = value2 হলে এই কোড এক্সিকিউট(execute) হবে;
        break;
    case value3:
        parameter = value3 হলে এই কোড এক্সিকিউট হবে;
        break;
    ...
    default:
        parameter যদি সকল value থেকে ভিন্ন হয় তাহলে এই কোড এক্সিকিউট হবে;
} 


যেভাবে এটি কাজ করেঃ

  • প্রথমে আমরা একটি সিঙ্গেল এক্সপ্রেশন n নিই যা অধিকাংশ ক্ষেত্রেই একটি ভ্যারিয়েবল এবং এটি কেবল মাত্র একবারই নির্ণয় হয়।
  • তারপরে এই নির্ণিত ভ্যালু switch স্টেটমেন্ট এর প্রতিটি case ভ্যালুর সাথে তুলনা করে।
  • যদি কোনো case ভ্যালুর সাথে এই ভ্যালু মিলে যায় তাহলে সেই case এর কোড ব্লক এক্সিকিউট হয়।
  • break স্টেটমেন্ট এর সাক্ষাৎ পাওয়া মাত্র প্রোগ্রামের কন্ট্রোল switch স্টেটমেন্ট থেকে বের হয়ে যায়। সুতরাং break এর পরবর্তী case এর কোড ব্লক আর এক্সিকিউশন হয় না।
  • যদি কোনো মিল খুঁজে না পায় তাহলে default এর কোড ব্লক এক্সিকিউশন করে।
উদাহরণ
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
$sports = "football";

switch ($sports) {
    case "football":
        echo "আপনার প্রিয় খেলা ফুটবল!";
        break;
    case "cricket":
        echo "আপনার প্রিয় খেলা ক্রিকেট!";
        break;
    default:
        echo "ফুটবল এবং ক্রিকেট কোনটাই আপনার প্রিয় খেলা নয়!";
}
?>

</body>
</html>


ফলাফল
আপনার প্রিয় খেলা ফুটবল!



পিএইচপি লুপ

পিএইচপিতে নিম্নোক্ত লুপ স্টেটমেন্ট ব্যবহৃত হয়ঃ

  • while লুপ - যতক্ষণ পর্যন্ত কন্ডিশন সত্য থাকে ততক্ষণ পর্যন্ত while loop এর কোড ব্লক সম্পাদিত(execute) হতে থাকে।
  • do...while লুপ - প্রথমেই কোড ব্লক একবার সম্পাদিত হয়। এরপরে যতক্ষণ পর্যন্ত কন্ডিশন সত্য থাকে ততক্ষণ পর্যন্ত এর কোড ব্লক সম্পাদিত(execute) হতে থাকে।
  • for লুপ - নির্দিষ্ট সংখ্যক বার কোনো কোড ব্লক সম্পাদিত(execute) হয়।
  • foreach লুপ - array এর প্রত্যেক এলিমেন্টের জন্য কোড ব্লক সম্পাদিত(execute) হয়।

পিএইচপি while লুপ

যতক্ষণ পর্যন্ত কন্ডিশন সত্য থাকে ততক্ষণ পর্যন্ত while loop এর কোড ব্লক সম্পাদিত(execute) হতে থাকে।

সিনট্যাক্স

while (কন্ডিশন সত্য থাকে) {
    কোড সম্পাদিত হতে থাকবে;
}

নিচের উদাহরণে প্রথমে $number এর মধ্যে 0 ($number = 0) রাখা হয়। তারপরে যতক্ষণ পর্যন্ত $number এর ভ্যালু 3 এর ছোট অথবা সমান ($number <= 3) থাকে ততক্ষণ পর্যন্ত while লুপ চলতে থাকবে। লুপ যত বার রান করে ততবার $number এর ভ্যালু 1 করে বৃদ্ধি পায়($number++):

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
$number = 0;

while($number <= 3) {
    echo "সংখ্যাটি হলোঃ $number <br>";
    $number++;
}
?>

</body>
</html>

ফলাফল
সংখ্যাটি হলোঃ 0
সংখ্যাটি হলোঃ 1
সংখ্যাটি হলোঃ 2
সংখ্যাটি হলোঃ 3





পিএইচপি do...while লুপ

do...while লুপে কোড ব্লক সর্বদাই একবার রান করে, এরপরে কন্ডিশন চেক করে এবং যতক্ষণ পর্যন্ত কন্ডিশন সত্য(true) থাকে ততক্ষণ পর্যন্ত কোড ব্লক রান করতে থাকে।

সিনট্যাক্স

do {
    কোড সম্পাদিত হবে;
} while (কন্ডিশন সত্য);

নিচের উদাহরণে প্রথমে $number এর মধ্যে 0 ($number = 0) রেখে কোড ব্লক একবার রান করে। তারপরে while এর কন্ডিশন টেস্ট করে। যতক্ষণ পর্যন্ত $number এর ভ্যালু 3 এর ছোট অথবা সমান ($number <= 3) থাকে ততক্ষণ পর্যন্ত while লুপ চলতে থাকবে। লুপ যত বার রান করে ততবার $number এর ভ্যালু 1 করে বৃদ্ধি পায়($number++):

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
$number = 0;

do {
    echo "সংখ্যাটি হলোঃ $number <br>";
    $number++;
} while ($number <= 3);
?>

</body>
</html>

ফলাফল
সংখ্যাটি হলোঃ 0
সংখ্যাটি হলোঃ 1
সংখ্যাটি হলোঃ 2
সংখ্যাটি হলোঃ 3

উপরের উদাহরণে লক্ষ্য করলে দেখবেন লুপের মধ্যে অবস্থিত স্টেটমেন্ট আগে সম্পাদিত হয় এবং পরে কন্ডিশন টেস্ট করে। এ থেকে বুঝা যায় যে, কন্ডিশন false হলে, এমনকি প্রথম কন্ডিশন false হলেও do while লুপ এর স্টেটমেন্ট অন্তত একবার সম্পাদিত হয়।

নিচের উদাহরণে প্রথমে $number এর মধ্যে 4 ($number = 4) রেখে কোড ব্লক একবার রান করে। এবং পরে কন্ডিশন চেক করে true থাকা পর্যন্ত কোড রান করতে থাকেঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
$number = 4;

do {
    echo "সংখ্যাটি হলোঃ $number <br>";
    $number++;
} while ($number <= 3);
?>

</body>
</html>

ফলাফল
সংখ্যাটি হলোঃ 4




পিএইচপি for লুপ

কোনো একটি নির্দিষ্ট কোড ব্লককে কতবার রান করাতে হবে তা যদি আগে থেকেই জানা থাকে সেক্ষেত্রে for লুপ ব্যবহার করা হয়।

সিনট্যাক্স(Syntax)

for (initial value; condition; increment/decrement) {
    এই কোড সম্পাদিত হবে;
} 

প্যারামিটারের বর্ণনাঃ

  • initial value : লুপ শুরু হওয়ার পূর্বেই এই কোড সম্পাদিত হয়।
  • condition : এই কন্ডিশনের উপর ভিত্তিকরে কোড ব্লক রান করে। কন্ডিশন true হলে কোড রান করে, false হলে লুপ শেষ হয়ে যাবে।
  • increment/decrement : প্রতিবার কোড ব্লক সম্পাদনের পর এর ভ্যালু বৃদ্ধি/হ্রাস পায়।

নিচের উদাহরণটি রান করালে আমরা 0 থকে 5 আউটপুট পাবোঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
for ($number = 0; $number <= 5; $number++) {
    echo "সংখ্যাটি হলোঃ $number <br>";
}
?>

</body>
</html>

ফলাফল
সংখ্যাটি হলোঃ 0
সংখ্যাটি হলোঃ 1
সংখ্যাটি হলোঃ 2
সংখ্যাটি হলোঃ 3
সংখ্যাটি হলোঃ 4
সংখ্যাটি হলোঃ 5

পিএইচপি foreach লুপ

কোন একটি array এর প্রত্যেক এলিমেন্টের জন্য কোড রান করানোর জন্য foreach লুপ ব্যবহার করা হয়।

সিনট্যাক্স

foreach ($array as $value) {
    এই কোড এক্সিকিউট হবে;
} 

প্রত্যেকবার লুপ ইটারেশন(iteration) এর জন্য কারেন্ট array এলিমেন্টটি $value এর মধ্যে জমা হয় এবং সবশেষ এলিমেন্ট-এ না পৌঁছানো পর্যন্ত array পয়েন্টার এক করে সামনে আগায়।

নিচের উদাহরণে foreach লুপ ব্যবহার করে $satt অ্যারে এর সকল এলিমেন্ট এর আউটপুট নেওয়া হয়েছেঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
	$satt = array("এইচটিএমএল","সিএসএস","জাভাস্ক্রিপ্ট");
	foreach ($satt as $value) {
    echo "$value <br>";
  }
?>

</body>
</html>

ফলাফল
এইচটিএমএল
সিএসএস
জাভাস্ক্রিপ্ট