🔀 الدرس 4 من 13
الجمل الشرطية
اتخاذ القرارات في الكود
if / else / elseif
الجمل الشرطية تسمح للكود باتخاذ قرارات مختلفة بناءً على شروط معينة.
الهيكل الأساسي:
يمكن إضافة أي عدد من
الهيكل الأساسي:
if (شرط) {
// كود ينفذ إذا الشرط صحيح
} elseif (شرط آخر) {
// كود ينفذ إذا الشرط الثاني صحيح
} else {
// كود ينفذ إذا كل الشروط خاطئة
}
يمكن إضافة أي عدد من
elseif. الـ else اختياري.
PHP
<?php
$grade = 75;
if ($grade >= 90) {
echo "تقدير: ممتاز (A)";
} elseif ($grade >= 80) {
echo "تقدير: جيد جداً (B)";
} elseif ($grade >= 70) {
echo "تقدير: جيد (C)";
} elseif ($grade >= 60) {
echo "تقدير: مقبول (D)";
} else {
echo "تقدير: راسب (F)";
}
echo "<br>";
// شروط مركبة
$age = 22;
$hasLicense = true;
if ($age >= 18 && $hasLicense) {
echo "يمكنه قيادة السيارة ✅";
} else {
echo "لا يمكنه القيادة ❌";
}
?>
الناتج المتوقع
تقدير: جيد (C)
يمكنه قيادة السيارة ✅switch / case
switch مفيد عندما تريد مقارنة متغير واحد بقيم متعددة. أكثر نظافةً من سلسلة طويلة من if/elseif.
مهم: لا تنسَ كتابة
break في نهاية كل case، وإلا سيستمر التنفيذ في الـ case التالي (يُسمى Fall-through).
default مثل else — ينفذ عندما لا يطابق أي case.
PHP
<?php
$day = "الاثنين";
switch ($day) {
case "السبت":
case "الأحد":
echo "عطلة نهاية الأسبوع 🎉";
break;
case "الاثنين":
echo "بداية الأسبوع، قهوة إضافية! ☕";
break;
case "الجمعة":
echo "آخر يوم عمل! 🙌";
break;
default:
echo "يوم عمل عادي 💼";
}
echo "<br><br>";
// مثال عملي: حاسبة بسيطة
$op = "+";
$a = 10; $b = 5;
switch ($op) {
case "+": echo "$a + $b = " . ($a + $b); break;
case "-": echo "$a - $b = " . ($a - $b); break;
case "*": echo "$a × $b = " . ($a * $b); break;
case "/": echo "$a ÷ $b = " . ($a / $b); break;
default: echo "عملية غير معروفة";
}
?>
الناتج المتوقع
بداية الأسبوع، قهوة إضافية! ☕
10 + 5 = 15Ternary و Null Coalescing
المشغل الثلاثي (Ternary): اختصار لـ if/else في سطر واحد:
Null Coalescing (??): يعيد القيمة الأولى إذا كانت موجودة وليست null، وإلا يعيد القيمة الثانية. مفيد جداً مع $_GET و $_POST.
match (PHP 8): مثل switch لكن أكثر إحكاماً ويستخدم المقارنة الصارمة (===).
$result = (شرط) ? قيمة_إذا_صح : قيمة_إذا_خطأ;
Null Coalescing (??): يعيد القيمة الأولى إذا كانت موجودة وليست null، وإلا يعيد القيمة الثانية. مفيد جداً مع $_GET و $_POST.
match (PHP 8): مثل switch لكن أكثر إحكاماً ويستخدم المقارنة الصارمة (===).
PHP
<?php
$score = 85;
// Ternary: سطر واحد بدل if/else
$result = ($score >= 60) ? "ناجح ✅" : "راسب ❌";
echo "النتيجة: $result<br>";
// Null Coalescing (??)
$username = $_GET['name'] ?? "زائر";
echo "مرحباً $username<br>";
// يمكن تسلسلها
$a = null;
$b = null;
$c = "أحمد";
echo ($a ?? $b ?? $c) . "<br>"; // أحمد
// match (PHP 8+)
$lang = "ar";
$greeting = match($lang) {
"ar" => "مرحباً",
"en" => "Hello",
"fr" => "Bonjour",
default => "Hi"
};
echo $greeting;
?>
الناتج المتوقع
النتيجة: ناجح ✅
مرحباً زائر
أحمد
مرحباً🧠
اختبر فهمك — الجمل الشرطية
5/5 للمتابعةالسؤال 1
ماذا يحدث إذا نسينا كتابة break في case داخل switch؟
السؤال 2
ما هو الناتج: echo (10 > 5) ? "كبير" : "صغير";
السؤال 3
ما وظيفة مشغل ?? (Null Coalescing)؟
السؤال 4
كيف نكتب الجزء الذي ينفذ عند عدم مطابقة أي case في switch؟
السؤال 5
ما الكلمة المفتاحية في PHP 8 التي تستخدم المقارنة الصارمة مثل switch؟