العمليات المنطقية في PHP — شرح عملي للكود والنتيجة
بعد أن تعلمت المقارنة، تحتاج الآن لدمج أكثر من شرط في نفس القرار. هنا تظهر أهمية العمليات المنطقية في PHP.
ما هي العمليات المنطقية في PHP؟
العمليات المنطقية تسمح لك بربط الشروط معاً أو عكس نتيجتها.
النتيجة النهائية دائماً تكون true أو false.
المعاملات المنطقية الأساسية
| المعامل | الاسم | متى تكون النتيجة true؟ |
|---|---|---|
&& |
AND | عندما تكون كل الشروط صحيحة |
|| |
OR | عندما يكون شرط واحد على الأقل صحيحاً |
! |
NOT | تعكس النتيجة المنطقية |
شرح AND (&&) مع مثال
الكود:
<?php
$age = 25;
$hasLicense = true;
var_dump($age >= 18 && $hasLicense);
?>
ما يظهر في المتصفح:
bool(true)
شرح الكود: تحققنا من شرطين معاً: العمر مناسب + لديه رخصة. بما أن الشرطين صحيحان، AND أعادت true.
شرح OR (||) مع مثال
الكود:
<?php
$isAdmin = false;
$isEditor = true;
var_dump($isAdmin || $isEditor);
?>
ما يظهر في المتصفح:
bool(true)
شرح الكود: OR تحتاج شرطاً صحيحاً واحداً فقط. بما أن $isEditor صحيح، فالنتيجة النهائية true.
شرح NOT (!) مع مثال
الكود:
<?php
$isLoggedIn = false;
var_dump(!$isLoggedIn);
?>
ما يظهر في المتصفح:
bool(true)
شرح الكود: المتغير $isLoggedIn قيمته false. عند تطبيق ! انعكست النتيجة إلى true.
مثال واقعي كامل: صلاحية الدخول
الكود:
<?php
$age = 20;
$hasID = true;
$isBanned = false;
if (($age >= 18 && $hasID) && !$isBanned) {
echo "مسموح بالدخول";
} else {
echo "غير مسموح بالدخول";
}
?>
ما يظهر في المتصفح:
مسموح بالدخول
شرح الكود: استخدمنا AND للتحقق من شرطين أساسيين (العمر + الهوية)، ثم أضفنا NOT مع حالة الحظر. بما أن المستخدم غير محظور وكل الشروط الأساسية متحققة، طُبعت رسالة السماح.
معلومة مهمة عن and / or
يمكنك كتابة and وor بدل && و||، لكن الأفضل للمبتدئ الالتزام بالرموز لأنها الأكثر شيوعاً.
&&/|| وبين and/or. استخدم الأقواس دائماً عندما يكون التعبير مركباً.
أخطاء شائعة في العمليات المنطقية
- نسيان الأقواس في الشروط المركبة.
- استخدام OR بدل AND أو العكس بدون الانتباه للمنطق المطلوب.
- الخلط بين المتغير المنطقي وبين نص مثل
"true". - الاعتماد على
echoفقط بدلvar_dump()أثناء التجربة.
تمرين سريع
- أنشئ متغيرات:
$hasAccount = trueو$emailVerified = false. - اختبر شرط AND بينهما، ثم شرط OR.
- استخدم NOT على
$emailVerifiedولاحظ النتيجة.
الأسئلة الشائعة — FAQ
ما الفرق بين AND و OR في PHP؟
AND تحتاج كل الشروط true، بينما OR يكفي فيها شرط واحد true.
ماذا تفعل NOT؟
تعكس النتيجة: true تصبح false والعكس.
هل أستخدم && و|| أم and وor؟
الأفضل عادة && و|| لأنها الأكثر شيوعاً والأوضح.
كيف أتحقق من نتيجة الشروط بوضوح؟
استخدم var_dump() لتشاهد bool(true) أو bool(false) بوضوح.
بعد هذا الدرس، انتقل إلى: الجمل الشرطية if / else في PHP.