কন্ডিশনাল একটি স্ক্রিপ্টকে সিদ্ধান্ত নিতে দেয় — প্রোগ্রামিং পরিচিতি-তে শেখা একই ধারণা, PHP-এর সিনট্যাক্স আর কয়েকটি PHP-নির্দিষ্ট শর্টকাট নিয়ে যা জানা ভালো।
<?php
$score = 72;
if ($score >= 90) {
echo "Grade: A";
} elseif ($score >= 75) {
echo "Grade: B";
} elseif ($score >= 60) {
echo "Grade: C";
} else {
echo "Grade: F";
}
?>লক্ষ্য করুন PHP elseif-কে একটি শব্দ হিসেবে ব্যবহার করে (যদিও দুই শব্দের else if-ও কাজ করে) — অন্য ভাষা থেকে আসার সময় এটি টাইপোর একটি ছোট কিন্তু সাধারণ উৎস।
একটি মানকে কয়েকটি সুনির্দিষ্ট সম্ভাবনার সাথে তুলনা করার সময় একটি লম্বা elseif চেইনের চেয়ে পরিষ্কার:
<?php
$day = "Mon";
switch ($day) {
case "Mon":
case "Tue":
case "Wed":
case "Thu":
case "Fri":
echo "Weekday";
break;
case "Sat":
case "Sun":
echo "Weekend";
break;
default:
echo "Not a valid day";
}
?>break; ভুলবেন না
break; ভুলে যাওয়া switch-এর সবচেয়ে সাধারণ ভুলগুলোর একটি — এটি ছাড়া, এক্সিকিউশন থামার বদলে পরের case-এ "fall through" করে। কোনো কোড ছাড়া কেসগুলো একসাথে রাখা (উপরে Mon থেকে Fri যেমন) সেই fall-through আচরণের একটি ইচ্ছাকৃত, বৈধ ব্যবহার; যেখানে আপনি চাননি সেখানে একটি break ভুলে যাওয়াই আসল বাগ।
সাধারণ ক্ষেত্রের জন্য একটি সংক্ষিপ্ত এক-লাইনের if/else:
<?php
$age = 20;
$status = ($age >= 18) ? "adult" : "minor";
echo $status; // "adult"
?>?? বাম পাশ set আর null না হলে সেটা রিটার্ন করে, নাহলে ডান পাশ — এমন ডেটা পড়ার সময় অত্যন্ত সাধারণ যা হয়তো নেই, যেমন একটি ফর্ম ফিল্ড:
<?php
$name = $_GET["name"] ?? "Guest";
echo $name; // "Guest" if no ?name= was in the URL
?>