🐘 درس چهارم: شرطها در PHP؛ تصمیمگیری در برنامهنویسی
🎯 هدف این درس: یاد میگیریم چطور با استفاده از شرطها، برنامه را وادار کنیم بر اساس شرایط مختلف تصمیم بگیرد.
مهمان عزیز! 👋
به درس چهارم از دوره جامع PHP – سطح اول (مبتدی) خوش آمدی.
تا اینجا یاد گرفتی چطور PHP را اجرا کنی، اطلاعات را داخل متغیرها ذخیره کنی و با استفاده از عملگرها روی آنها محاسبه و مقایسه انجام بدهی.
اما یک سؤال مهم وجود دارد:
چطور کاری کنیم که برنامه بر اساس نتیجه یک بررسی، تصمیم متفاوتی بگیرد؟
برای مثال، فرض کن میخواهیم بررسی کنیم که آیا سن یک کاربر برای ثبتنام کافی است یا نه.
برنامه باید بتواند نتیجه را بررسی کند و بر اساس آن پیام مناسب نمایش دهد.
اینجا دقیقاً جایی است که شرطها (Conditions) وارد عمل میشوند.
💡 نکته مهم مهمان:
شرطها یکی از مهمترین بخشهای برنامهنویسی هستند. تقریباً در هر برنامه واقعی، از فرم ثبتنام و فروشگاه اینترنتی گرفته تا سیستم مدیریت کاربران، با شرطها سروکار خواهی داشت.
🧠 بخش ۱: شرط چیست؟
شرط یعنی از برنامه بخواهیم یک موضوع را بررسی کند و بر اساس نتیجه آن، کاری را انجام دهد.
در زندگی روزمره هم دائماً از منطق شرطی استفاده میکنیم:
- اگر هوا بارانی بود، چتر برمیدارم.
- اگر موجودی محصول بیشتر از صفر بود، امکان خرید را نمایش میدهم.
- اگر رمز عبور صحیح بود، اجازه ورود میدهم.
- اگر سن کاربر حداقل ۱۸ سال بود، ثبتنام را تأیید میکنم.
در PHP نیز همین منطق را با ساختارهایی مانند if، else، elseif و switch پیادهسازی میکنیم.
🔵 بخش ۲: ساختار if
سادهترین ساختار شرطی در PHP، if است.
زمانی که شرط داخل if درست باشد، کدی که داخل آن قرار دارد اجرا میشود.
ساختار کلی:
ساختار if
PHP
v8.2
<?php
$age = 20;
if ($age >= 18) {
echo "شما میتوانید ثبتنام کنید.";
}
?>
در این مثال ابتدا مقدار 20 را داخل متغیر $age قرار دادیم.
سپس بررسی کردیم که آیا مقدار سن بزرگتر یا مساوی 18 است یا خیر.
چون نتیجه این بررسی true است، دستور echo اجرا میشود.
⚠️ نکته:
دستورات داخل { } فقط زمانی اجرا میشوند که شرط if برقرار باشد.
🟢 بخش ۳: استفاده از if و else
گاهی لازم است برای هر دو حالت برنامه تصمیم داشته باشد.
یعنی اگر شرط درست بود یک کار انجام شود و اگر درست نبود، کار دیگری انجام شود.
در چنین شرایطی از else استفاده میکنیم.
if و else
PHP
v8.2
<?php
$age = 16;
if ($age >= 18) {
echo "دسترسی مجاز است.";
} else {
echo "دسترسی مجاز نیست.";
}
?>
چون مقدار $age برابر با 16 است، شرط برقرار نیست.
بنابراین بخش else اجرا میشود.
🟣 بخش ۴: چند شرط با elseif
در برنامههای واقعی معمولاً فقط دو حالت نداریم.
مثلاً ممکن است بخواهیم بر اساس نمره یک دانشجو، وضعیت او را مشخص کنیم:
- نمره ۱۸ تا ۲۰ → عالی
- نمره ۱۵ تا ۱۷ → خوب
- نمره ۱۰ تا ۱۴ → قابل قبول
- کمتر از ۱۰ → مردود
برای چنین شرایطی میتوانیم از elseif استفاده کنیم.
elseif
PHP
v8.2
<?php
$score = 17;
if ($score >= 18) {
echo "عالی";
} elseif ($score >= 15) {
echo "خوب";
} elseif ($score >= 10) {
echo "قابل قبول";
} else {
echo "مردود";
}
?>
💡 نکته کلیدی مهمان:
PHP شرطها را از بالا به پایین بررسی میکند. به محض اینکه یکی از شرطها برقرار شود، همان بخش اجرا میشود و شرطهای بعدی بررسی نمیشوند.
🔄 بخش ۵: شرطهای ترکیبی
گاهی برای تصمیمگیری به بیش از یک شرط نیاز داریم.
در این حالت میتوانیم از عملگرهای منطقی مانند && و || استفاده کنیم.
عملگر AND
با && هر دو شرط باید درست باشند.
شرط ترکیبی با AND
PHP
v8.2
<?php
$age = 25;
$has_ticket = true;
if ($age >= 18 && $has_ticket === true) {
echo "ورود مجاز است.";
} else {
echo "ورود مجاز نیست.";
}
?>
عملگر OR
با || کافی است حداقل یکی از شرطها درست باشد.
شرط ترکیبی با OR
PHP
v8.2
<?php
$is_admin = false;
$is_teacher = true;
if ($is_admin === true || $is_teacher === true) {
echo "دسترسی ویژه فعال است.";
} else {
echo "دسترسی عادی است.";
}
?>
🟠 بخش ۶: ساختار switch
وقتی یک متغیر میتواند چند مقدار مشخص داشته باشد، گاهی استفاده از چندین if و elseif کد را شلوغ میکند.
در چنین شرایطی switch میتواند خوانایی برنامه را بهتر کند.
برای مثال، فرض کنیم یک عدد نشاندهنده روز هفته باشد.
ساختار switch
PHP
v8.2
<?php
$day = 3;
switch ($day) {
case 1:
echo "شنبه";
break;
case 2:
echo "یکشنبه";
break;
case 3:
echo "دوشنبه";
break;
default:
echo "روز نامعتبر است.";
}
?>
⚠️ نکته مهم درباره break:
در بیشتر موارد بعد از اجرای یک case باید از break استفاده کنیم تا PHP وارد caseهای بعدی نشود.
🛒 بخش ۷: یک مثال واقعی از شرطها
حالا بیایید یک مثال نزدیک به پروژههای واقعی بنویسیم.
فرض کنید یک فروشگاه اینترنتی داریم و میخواهیم وضعیت سفارش را بر اساس مبلغ آن مشخص کنیم.
مثال واقعی فروشگاه
PHP
v8.2
<?php
$order_total = 2500000;
if ($order_total >= 5000000) {
echo "ارسال رایگان است.";
} elseif ($order_total >= 2000000) {
echo "هزینه ارسال با تخفیف محاسبه میشود.";
} else {
echo "هزینه ارسال به عهده مشتری است.";
}
?>
🧠 چیزی که باید از این مثال یاد بگیری:
شرطها فقط مثالهای آموزشی نیستند. همین منطق در سیستمهای واقعی مثل فروشگاهها، پنلهای کاربری، سیستمهای احراز هویت، مدیریت سفارش و افزونههای وردپرس استفاده میشود.
🧩 پروژه عملی درس: سیستم بررسی نمره
🎯 پروژه: تعیین وضعیت دانشجو
برنامهای بنویسید که نمره یک دانشجو را دریافت کند و بر اساس نمره، وضعیت او را مشخص کند.
- ۱۸ تا ۲۰: عالی
- ۱۵ تا کمتر از ۱۸: خوب
- ۱۰ تا کمتر از ۱۵: قابل قبول
- کمتر از ۱۰: مردود
🔍 راهحل پروژه:
سیستم بررسی نمره
PHP
v8.2
<?php
$student_name = "مهمان";
$score = 17;
echo "<h2>نتیجه ارزیابی</h2>";
echo "نام دانشجو: " . $student_name . "<br>";
echo "نمره: " . $score . "<br><br>";
if ($score >= 18 && $score <= 20) {
echo "وضعیت: عالی ⭐";
} elseif ($score >= 15) {
echo "وضعیت: خوب 👍";
} elseif ($score >= 10) {
echo "وضعیت: قابل قبول 👌";
} else {
echo "وضعیت: مردود ❌";
}
?>
📝 تمرینهای عملی
🎯 تمرین شماره ۱: بررسی سن
متغیری به نام $age بسازید و بررسی کنید که آیا کاربر به سن قانونی رسیده است یا خیر.
🎯 تمرین شماره ۲: بررسی عدد زوج و فرد
یک عدد داخل متغیر قرار دهید و با استفاده از عملگر باقیمانده % مشخص کنید که عدد زوج است یا فرد.
🎯 تمرین شماره ۳: وضعیت سفارش
متغیری به نام $order_status بسازید و با استفاده از switch برای وضعیتهای مختلف سفارش پیام مناسب نمایش دهید.
💡 نکات کلیدی درس
- ✅
ifبرای بررسی یک شرط استفاده میشود. - ✅
elseزمانی اجرا میشود که شرط اصلی برقرار نباشد. - ✅
elseifبرای بررسی چند حالت مختلف کاربرد دارد. - ✅
switchبرای بررسی چند مقدار مشخص و ثابت بسیار خوانا است. - ✅ با
&&میتوان چند شرط را به صورت AND ترکیب کرد. - ✅ با
||میتوان چند شرط را به صورت OR ترکیب کرد. - ✅ در شرطها میتوان از عملگرهای مقایسهای مانند
===،!==،>و<استفاده کرد.
در درس بعدی سراغ حلقهها در PHP میرویم و یاد میگیریم چطور یک عملیات را چندین بار، بدون تکرار دستی کد، اجرا کنیم.
با for، while و foreach آشنا خواهی شد.



