المعاملات المنطقية - الجزء الأول
جزء من قسم Fundamentals في رحلة PHP على Coddy — الدرس 25 من 71.
المعاملات المنطقية تسمح لك بدمج تعبيرات منطقية متعددة في تعبير واحد. هذا أمر ضروري عندما تحتاج إلى التحقق من عدة شروط في وقت واحد.
يعيد عامل AND المنطقي (&&) القيمة true فقط عندما يكون كلا الشرطين صحيحين:
<?php
$age = 25;
$hasLicense = true;
$canDrive = $age >= 18 && $hasLicense;
var_dump($canDrive); // bool(true)
$age = 16;
$canDrive = $age >= 18 && $hasLicense;
var_dump($canDrive); // bool(false) - فشل شرط العمر
?>يعيد عامل OR (||) القيمة true عندما يكون شرط واحد على الأقل صحيحاً:
<?php
$isWeekend = true;
$isHoliday = false;
$dayOff = $isWeekend || $isHoliday;
var_dump($dayOff); // bool(true) - weekend هو true
$isWeekend = false;
$dayOff = $isWeekend || $isHoliday;
var_dump($dayOff); // bool(false) - كلاهما false
?>فكر في && على أنها "يجب أن يكون كلاهما صحيحاً" و || على أنها "يجب أن يكون أحدهما على الأقل صحيحاً". في الدرس القادم، ستتعلم عن معامل NOT وكيفية دمج معاملات منطقية متعددة.
التحدي
سهلاقرأ أربع قيم من المدخلات: عدد صحيح age، وسلسلة نصية hasTicket (إما "true" أو "false")، وسلسلة نصية isMember (إما "true" أو "false")، وسلسلة نصية hasInvitation (إما "true" أو "false").
قم بتحويل القيم النصية إلى قيم منطقية (booleans) عن طريق مقارنتها بـ "true".
قم بتقييم الشرطين التاليين واطبع نتيجة كل منهما باستخدام var_dump()، كل منهما في سطر جديد:
- تحقق مما إذا كان بإمكان الشخص دخول الحدث: يجب أن يكون عمره 18 عاماً على الأقل و لديه تذكرة
- تحقق مما إذا كان الشخص يحصل على دخول مجاني: يجب أن يكون عضواً أو لديه دعوة
مثال:
إذا كانت المدخلات هي 25، و true، و false، و true، فيجب أن تكون المخرجات:
bool(true)
bool(true)الشرح:
- 25 >= 18 و hasTicket هي true ← true
- isMember هي false أو hasInvitation هي true ← true
ورقة مرجعية
يعيد معامل AND (&&) القيمة true فقط عندما يكون كلا الشرطين صحيحين:
<?php
$age = 25;
$hasLicense = true;
$canDrive = $age >= 18 && $hasLicense;
var_dump($canDrive); // bool(true)
?>يعيد معامل OR (||) القيمة true عندما يكون أحد الشرطين على الأقل صحيحاً:
<?php
$isWeekend = true;
$isHoliday = false;
$dayOff = $isWeekend || $isHoliday;
var_dump($dayOff); // bool(true)
?>جرّب بنفسك
<?php
// قراءة قيم المدخلات
$age = intval(fgets(STDIN));
$hasTicket = trim(fgets(STDIN));
$isMember = trim(fgets(STDIN));
$hasInvitation = trim(fgets(STDIN));
// TODO: تحويل القيم النصية إلى قيم منطقية (booleans) من خلال مقارنتها بـ "true"
// TODO: التحقق مما إذا كان الشخص يمكنه دخول الحدث (على الأقل 18 عاماً وَ لديه تذكرة)
// TODO: التحقق مما إذا كان الشخص يحصل على دخول مجاني (عضو أَوْ لديه دعوة)
// إخراج النتائج باستخدام var_dump()
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوص