المعاملات المنطقية - الجزء الثاني
جزء من قسم Fundamentals في رحلة PHP على Coddy — الدرس 26 من 71.
يقوم عامل النفي (NOT operator) (!) بقلب القيمة المنطقية (boolean) إلى عكسها. إذا كانت القيمة true، فإنها تصبح false، والعكس صحيح:
<?php
$isLoggedIn = false;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(true)
$isLoggedIn = true;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(false)
?>يمكنك دمج عدة معاملات منطقية في تعبير واحد. عندما تفعل ذلك، استخدم الأقواس لجعل نواياك واضحة:
<?php
$age = 25;
$hasTicket = true;
$isVIP = false;
// يمكن الدخول إذا كان: لديه تذكرة و (بالغ أو VIP)
$canEnter = $hasTicket && ($age >= 18 || $isVIP);
var_dump($canEnter); // bool(true)
?>بدون الأقواس، يتم تقييم && قبل ||. ومع ذلك، فإن استخدام الأقواس يجعل كودك أسهل في القراءة ويمنع الأخطاء. عند دمج العوامل، قم دائمًا بتجميع الشروط منطقيًا للتعبير عما تقصده بالضبط.
التحدي
سهلاقرأ أربع قيم من المدخلات: عدد صحيح temperature، وسلسلة نصية isRaining (إما "true" أو "false")، وسلسلة نصية hasUmbrella (إما "true" أو "false")، وسلسلة نصية hasRaincoat (إما "true" أو "false").
قم بتحويل القيم النصية إلى قيم منطقية (booleans) عن طريق مقارنتها بـ "true".
قم بتقييم الشروط الثلاثة التالية واطبع نتيجة كل منها باستخدام var_dump()، كل واحدة في سطر جديد:
- تحقق مما إذا كانت السماء لا تمطر (استخدم معامل
!) - تحقق مما إذا كان يجب على الشخص البقاء في الداخل: السماء تمطر و ليس لديه مظلة ولا معطف واقٍ من المطر (استخدم
!مع كلا العنصرين) - تحقق مما إذا كان بإمكان الشخص الخروج براحة: درجة الحرارة لا تقل عن 15 و (السماء لا تمطر أو لديه مظلة أو معطف واقٍ من المطر)
مثال:
إذا كانت المدخلات هي 20، و true، و false، و true، فيجب أن تكون المخرجات:
bool(false)
bool(false)
bool(true)التفسير:
!isRaining← !true ← falseisRaining && !hasUmbrella && !hasRaincoat← true && true && false ← falsetemperature >= 15 && (!isRaining || hasUmbrella || hasRaincoat)← true && (false || false || true) ← true && true ← true
ورقة مرجعية
يقوم معامل NOT (!) بقلب القيمة المنطقية (boolean) إلى عكسها:
<?php
$isLoggedIn = false;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(true)
$isLoggedIn = true;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(false)
?>يمكنك دمج عدة معاملات منطقية في تعبير واحد. استخدم الأقواس لجعل مقاصدك واضحة:
<?php
$age = 25;
$hasTicket = true;
$isVIP = false;
// يمكن الدخول إذا كان: لديه تذكرة و (بالغ أو VIP)
$canEnter = $hasTicket && ($age >= 18 || $isVIP);
var_dump($canEnter); // bool(true)
?>بدون الأقواس، يتم تقييم && قبل ||. ومع ذلك، فإن استخدام الأقواس يجعل كودك أسهل في القراءة ويمنع الأخطاء.
جرّب بنفسك
<?php
// قراءة قيم المدخلات
$temperature = intval(fgets(STDIN));
$isRainingStr = trim(fgets(STDIN));
$hasUmbrellaStr = trim(fgets(STDIN));
$hasRaincoatStr = trim(fgets(STDIN));
// TODO: تحويل القيم النصية إلى قيم منطقية (booleans) من خلال مقارنتها بـ "true"
// TODO: تقييم وطباعة الشروط الثلاثة باستخدام var_dump():
// 1. التحقق مما إذا كانت السماء لا تمطر
// 2. التحقق مما إذا كان يجب على الشخص البقاء في الداخل (تمطر وَ لا توجد مظلة وَ لا يوجد معطف واقٍ من المطر)
// 3. التحقق مما إذا كان بإمكان الشخص الخروج بشكل مريح
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوص