- ما هي
if statement
- تركيبها الأساسي
- جميع الصيغ المرتبطة بها (
if
،if-else
،if-elseif-else
) - الاختصارات (
ternary operator
،null coalescing operator
) - أمثلة عملية متنوعة
- ملاحظات مهمة وميزات
- الاستخدامات والفوائد
🧠 أولًا: ما هي if statement في PHP؟
if statement
هي أداة تحكم (control structure) تُستخدم لتنفيذ جزء معين من الكود فقط إذا تحقق شرط معين. تُستخدم لاتخاذ القرارات داخل البرنامج.
🧱 ثانيًا: البنية الأساسية
if (condition) {
// الكود ينفّذ فقط إذا كان الشرط true
}
PHP✅ ثالثًا: أنواع جمل if في PHP
1. if فقط
$age = 20;
if ($age >= 18) {
echo "أنت بالغ.";
}
PHP2. if – else
$loggedIn = false;
if ($loggedIn) {
echo "مرحبًا بك!";
} else {
echo "يرجى تسجيل الدخول.";
}
PHP3. if – elseif – else
$score = 75;
if ($score >= 90) {
echo "ممتاز";
} elseif ($score >= 75) {
echo "جيد جدًا";
} elseif ($score >= 60) {
echo "جيد";
} else {
echo "راسب";
}
PHP⚡ رابعًا: الاختصارات
🔹 Ternary Operator (المشغل الثلاثي)
📌 ما هو؟
هو اختصار بسيط لجملة if-else، يُستخدم عندما نريد اتخاذ قرار بسيط وتخزين أو طباعة النتيجة في سطر واحد فقط.
✅ الصيغة العامة:
الشرط ? القيمة_إذا_كان_صحيح : القيمة_إذا_كان_خطأ;
PHP🟢 مثال بسيط:
$age = 20;
echo ($age >= 18) ? "مسموح" : "ممنوع";
PHP📌 الشرح:
- إذا كان
$age >= 18
⇒ يطبع"مسموح"
- إذا كان العكس ⇒ يطبع
"ممنوع"
✅ نفس الشيء باستخدام if التقليدي:
if($age >= 18) {
echo "مسموح";
} else {
echo "ممنوع";
}
PHP🧪 مثال عملي داخل HTML:
<?php
$is_logged_in = true;
?>
<p>
<?php $is_logged_in ? "أهلاً بعودتك!" : "يرجى تسجيل الدخول."; ?>
</p>
PHP🔄 استخدامه في التعيين (assignment):
$status = ($score >= 50) ? "ناجح" : "راسب";
PHP✴️ أسرع وأسهل من كتابة:
if($score >= 50) {
$status = "ناجح";
} else {
$status = "راسب";
}
PHP✳️ متى نستخدم Ternary Operator؟
الحالة | هل مناسب؟ |
---|---|
✅ شرط بسيط وقصير | ممتاز جداً |
✅ طباعة قيمة بناءً على شرط | شائع جداً |
❌ شرط مع عدة أسطر أو تعقيد | لا يُنصح |
⚠️ محاذير للمبتدئين:
التحذير | التوضيح |
---|---|
❌ لا تُكثر من التفرعات داخل ternary | قد يصبح غير مقروء |
❌ لا تستخدمه في شروط معقدة | استخدم if التقليدي |
❌ لا تنس الأقواس عند الحاجة | خاصة إذا كنت داخل echo أو HTML |
✅ لا تنس وضع : و ? بشكل صحيح | لأن الخطأ فيها صعب اكتشافه |
📌 تحسين القراءة:
استخدم أقواس لتوضيح المعنى:
echo ($user == "admin") ? "لوحة التحكم" : "مستخدم عادي";
PHP🧠 هل يمكن التداخل؟ (Nested ternary)
نعم، لكن لا يُنصح بها للمبتدئين لأنها مربكة:
$type = ($role == "admin") ? "مدير" : (($role == "mod") ? "مشرف" : "مستخدم");
PHP🟥 الأفضل استخدام if في هذه الحالات لتسهيل الفهم والصيانة.
📘 تدريب للمبتدئين:
أنشئ كودًا يحدد ما إذا كان المستخدم بالغًا أو طفلًا بناءً على العمر:
<?php
$age = 16;
echo ($age >= 18) ? "بالغ" : "طفل";
?>
PHP✅ نصائح عامة:
- رائع في HTML وداخل الطباعة المباشرة.
- لا يُغني عن if في العمليات المعقدة.
- يساعد على كتابة كود أنظف، إذا استُخدم في مكانه الصحيح.
💎 تلخيص سريع:
- ternary = شرط؟ إذا نعم : إذا لا
- مثال:
$x = ($a > 5) ? "كبير" : "صغير";
- مفيد للطباعة أو التعيين البسيط.
- لا تستخدمه داخل شروط طويلة أو معقدة.
$isAdmin = true;
echo $isAdmin ? "أنت مشرف" : "أنت مستخدم عادي";
PHP🔹 Null Coalescing Operator (??)
يستخدم لتحديد قيمة بديلة في حال كانت القيمة الأولى null
أو غير موجودة.
$username = $_GET['username'] ?? 'زائر';
echo $username;
PHP💡 خامسًا: أمثلة عملية شاملة
✅ التحقق من كلمة المرور
$password = "123456";
if ($password === "123456") {
echo "تم تسجيل الدخول بنجاح";
} else {
echo "كلمة المرور غير صحيحة";
}
PHP✅ التحقق من نوع المتصفح
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($userAgent, 'Chrome') !== false) {
echo "أنت تستخدم متصفح كروم";
} elseif (strpos($userAgent, 'Firefox') !== false) {
echo "أنت تستخدم فايرفوكس";
} else {
echo "متصفح غير معروف";
}
PHP✅ التحقق من حقول نموذج
if (!empty($_POST['email']) && !empty($_POST['password'])) {
echo "تم إرسال النموذج";
} else {
echo "يرجى تعبئة جميع الحقول";
}
PHP🧩 سادسًا: الميزات والملاحظات
الميزة | التوضيح |
---|---|
قابلة للتعشيش | يمكن وضع if داخل if |
تقرأ من الأعلى للأسفل | تُنفذ أول شرط يتحقق |
تدعم جميع أنواع القيم المنطقية | مثل true/false، المقارنات، boolean functions |
تستخدم مع أي نوع بيانات | عدد، سلسلة نصية، كائن، إلخ |
🛠️ سابعًا: فوائد واستخدامات جملة if
- التحكم في سير البرنامج
- التحقق من صحة المدخلات
- تحديد الأذونات (مثل المستخدم أو الأدمن)
- تخصيص واجهة المستخدم بناءً على الحالة
- معالجة حالات الخطأ
🧪 ثامنًا: مثال عملي متقدم – نظام تسجيل دخول
$username = $_POST['username'] ?? '';
$password = $_POST['password'] ?? '';
if ($username === 'admin' && $password === 'secret') {
echo "مرحبًا، مشرف!";
} elseif ($username === 'admin') {
echo "كلمة المرور خاطئة";
} else {
echo "المستخدم غير موجود";
}
PHP🔄 تاسعًا: (Nested if)
$age = 25;
$isStudent = true;
if ($age > 18) {
if ($isStudent) {
echo "أنت طالب بالغ";
} else {
echo "أنت بالغ";
}
}
PHP✨ عاشرًا: ملخص سريع
النوع | الاستخدام |
---|---|
if | تنفيذ شرط واحد |
if - else | أحد احتمالين |
if - elseif - else | حالات متعددة |
?: | اختصار if else |
?? | التحقق من null |
إذا كنت ترغب بشرح مصوّر، أو دمج هذه الأمثلة في مشروع عملي مثل نظام تسجيل دخول أو نموذج تسجيل بيانات، فأخبرني وسأكمله لك فورًا.
✅ المثال الأول: التحقق من الرقم إذا كان موجبًا أو سالبًا
$number = -5;
if ($number > 0) {
echo "العدد موجب";
} elseif ($number < 0) {
echo "العدد سالب";
} else {
echo "العدد صفر";
}
PHP✅ المثال الثاني: التحقق من العمر للدخول إلى موقع
$age = 16;
if ($age >= 18) {
echo "مرحبًا بك في الموقع!";
} else {
echo "عذرًا، الموقع مخصص لمن هم فوق 18 سنة.";
}
PHP✅ المثال الثالث: تحديد نوع اليوم (عمل أو عطلة)
$day = "الجمعة";
if ($day === "الجمعة" || $day === "السبت") {
echo "اليوم عطلة";
} else {
echo "اليوم يوم عمل";
}
PHP✅ المثال الرابع: مقارنة رقمين
$a = 10;
$b = 20;
if ($a > $b) {
echo "الرقم A أكبر من B";
} elseif ($a < $b) {
echo "الرقم B أكبر من A";
} else {
echo "الرقمان متساويان";
}
PHP