تُستخدم المعاملات المنطقية لربط أكثر من شرط داخل جملة شرطية if أو غيرها، وتُرجع true أو false بناءً على نتيجة الشروط.
✅ أهم المعاملات:
المعامل
الاسم
المعنى
&&
AND
كل الشروط لازم تكون صحيحة ✅
`
`
!
NOT
يعكس نتيجة الشرط (إذا كان true يصبح false)
and
AND (نفس &&)
لكن له أولوية أقل
or
OR (نفس `
xor
Exclusive OR
شرط واحد فقط يكون صحيح – لو الاثنين صح تكون False ❌
🔸 الفرق بين && و and, و || و or:
| المقارنة | &&, || (مرجَّحة) | and, or (نادرة الاستخدام) | |——————–|———————-|——————————-| | أولوية أعلى | ✅ | ❌ (ممكن تسبب مشاكل في الإسناد) | | الأفضلية في الاستخدام | ✅ استخدمها دائماً | ❌ تجنبها إذا لم تكن مضطرًا |
$hasCoupon=true;$isVIP=true;if ($hasCouponxor$isVIP) {echo"خصم متاح";} else {echo"لا خصم";}// ❌ لأن الاثنين true → لا يعمل الخصم
PHP
💬 استخدامات شائعة:
الحالة
الاستخدام
التحقق من أكثر من شرط
if ($age > 18 && $country == "Egypt")
التأكد من وجود أحد الشروط فقط
`if ($loggedIn
عكس شرط
if (!empty($name))
شروط الخصم أو الإذن بالدخول
if ($hasPermission && $isVerified)
⚠️ محاذير:
التحذير
التوضيح
لا تخلط بين and و && داخل إسناد
لأن and لها أولوية أقل، وقد تعطي نتائج غير متوقعة
❗ مثال خاطئ:
$result=false||true; // ✅ يعطينا truevar_dump($result); // true$result=falseortrue; // ❌ يعطينا falsevar_dump($result); // false لأن `=` له أولوية أعلى من `or`
PHP
🧪 تمارين تدريبية:
اكتب شرط يتحقق إذا كان المستخدم بالغ (age >= 18) ومسجل (isRegistered == true).
تحقق إذا كان المستخدم admin أو moderator لعرض لوحة التحكم.
اكتب شرط يعرض رسالة “تسجيل الدخول” إذا لم يكن المستخدم مسجلاً (!loggedIn).
جرّب xor مع متغيرين أحدهما true والآخر false.
اختبر && و || داخل if لتكوين شرط معقّد فيه 3 شروط.
✅ ملخص سريع:
المعامل
الوصف
النتيجة المطلوبة
&&
كل الشروط يجب أن تكون true
true
`
`
!
يعكس القيمة
true ↔ false
xor
شرط واحد فقط يكون true
true
💡 نصائح عامة:
استخدم && و || بدلاً من and و or لأنها أكثر وضوحًا وأمانًا في التنفيذ.
اختبر الشروط المعقدة داخل if باستخدام var_dump() للتأكد من النتائج.
استخدم ! بطريقة معتدلة حتى لا تجعل الشروط صعبة الفهم.