Logical Operators In PHP

(المعاملات المنطقية)

تُستخدم المعاملات المنطقية لربط أكثر من شرط داخل جملة شرطية if أو غيرها، وتُرجع true أو false بناءً على نتيجة الشروط.

✅ أهم المعاملات:
المعاملالاسمالمعنى
&&ANDكل الشروط لازم تكون صحيحة ✅
``
!NOTيعكس نتيجة الشرط (إذا كان true يصبح false)
andAND (نفس &&)لكن له أولوية أقل
orOR (نفس `
xorExclusive ORشرط واحد فقط يكون صحيح – لو الاثنين صح تكون False ❌
🔸 الفرق بين && و and, و || و or:

| المقارنة | &&, || (مرجَّحة) | and, or (نادرة الاستخدام) |
|——————–|———————-|——————————-|
| أولوية أعلى | ✅ | ❌ (ممكن تسبب مشاكل في الإسناد) |
| الأفضلية في الاستخدام | ✅ استخدمها دائماً | ❌ تجنبها إذا لم تكن مضطرًا |

✅ أمثلة وشروحات:
📌 1. && (AND)
$age = 20;
$country = "Egypt";

if ($age >= 18 && $country == "Egypt") {
    echo "Allowed";
} else {
    echo "Not allowed";
}
// ✅ كل الشرطين لازم يتحققوا
PHP
📌 2. || (OR)
$userType = "admin";
$status = "active";

if ($userType == "admin" || $status == "active") {
    echo "Access granted";
} else {
    echo "Access denied";
}
// ✅ يكفي شرط واحد يتحقق
PHP
📌 3. ! (NOT)
$loggedIn = false;

if (! $loggedIn) {
    echo "Please login first";
}
// ✅ يعكس القيمة: !false = true
PHP
📌 4. xor (Exclusive OR)
$hasCoupon = true;
$isVIP = true;

if ($hasCoupon xor $isVIP) {
    echo "خصم متاح";
} else {
    echo "لا خصم";
}
// ❌ لأن الاثنين true → لا يعمل الخصم
PHP
💬 استخدامات شائعة:
الحالةالاستخدام
التحقق من أكثر من شرطif ($age > 18 && $country == "Egypt")
التأكد من وجود أحد الشروط فقط`if ($loggedIn
عكس شرطif (!empty($name))
شروط الخصم أو الإذن بالدخولif ($hasPermission && $isVerified)
⚠️ محاذير:
التحذيرالتوضيح
لا تخلط بين and و && داخل إسنادلأن and لها أولوية أقل، وقد تعطي نتائج غير متوقعة
❗ مثال خاطئ:
$result = false || true;  // ✅ يعطينا true
var_dump($result); // true

$result = false or true;  // ❌ يعطينا false
var_dump($result); // false لأن `=` له أولوية أعلى من `or`
PHP
🧪 تمارين تدريبية:
  1. اكتب شرط يتحقق إذا كان المستخدم بالغ (age >= 18) ومسجل (isRegistered == true).
  2. تحقق إذا كان المستخدم admin أو moderator لعرض لوحة التحكم.
  3. اكتب شرط يعرض رسالة “تسجيل الدخول” إذا لم يكن المستخدم مسجلاً (!loggedIn).
  4. جرّب xor مع متغيرين أحدهما true والآخر false.
  5. اختبر && و || داخل if لتكوين شرط معقّد فيه 3 شروط.
✅ ملخص سريع:
المعاملالوصفالنتيجة المطلوبة
&&كل الشروط يجب أن تكون truetrue
``
!يعكس القيمةtruefalse
xorشرط واحد فقط يكون truetrue
💡 نصائح عامة:
  • استخدم && و || بدلاً من and و or لأنها أكثر وضوحًا وأمانًا في التنفيذ.
  • اختبر الشروط المعقدة داخل if باستخدام var_dump() للتأكد من النتائج.
  • استخدم ! بطريقة معتدلة حتى لا تجعل الشروط صعبة الفهم.