if / elseif / else
<?php
$score = 85;
if ($score >= 90) {
echo "ممتاز";
} elseif ($score >= 60) {
echo "ناجح";
} else {
echo "راسب";
}
?>
العامل الثلاثي (Ternary)
اختصار لـ if/else بسيط:
<?php
$age = 20;
$status = ($age >= 18) ? "بالغ" : "قاصر";
echo $status; // بالغ
?>
switch
للمقارنة بقيمة واحدة مع عدّة احتمالات:
<?php
$day = "السبت";
switch ($day) {
case "الجمعة":
case "السبت":
echo "عطلة";
break;
default:
echo "يوم عمل";
}
?>
⚠️ لا تنسَ
breakفي كلcase، وإلا "تتسرّب" للحالة التالية.
تعبير match (الحديث)
أُضيف في PHP 8 — أوضح من switch، ويقارن بـ ===، ويُرجع قيمة:
<?php
$status = 404;
$message = match ($status) {
200 => "ناجح",
404 => "غير موجود",
500 => "خطأ خادم",
default => "غير معروف",
};
echo $message; // غير موجود
?>
match مقابل switch
| switch | match | |
|---|---|---|
| المقارنة | == | === |
break | مطلوب | غير مطلوب |
| يُرجع قيمة | لا | نعم |
| عدّة قيم | بـ case متتالية | بفاصلة 1, 2 => |
<?php
$result = match ($day) {
"الجمعة", "السبت" => "عطلة",
default => "عمل",
};
?>
أخطاء شائعة
- نسيان
breakفيswitchفتُنفَّذ حالات غير مقصودة. - توقّع أن
matchيقبل تحويل النوع — هو يقارن بـ===الصارم.
🎯 التالي: الحلقات (Loops).