Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

المعاملات المنطقية - الجزء الثاني

جزء من قسم 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)
?>

بدون الأقواس، يتم تقييم && قبل ||. ومع ذلك، فإن استخدام الأقواس يجعل كودك أسهل في القراءة ويمنع الأخطاء. عند دمج العوامل، قم دائمًا بتجميع الشروط منطقيًا للتعبير عما تقصده بالضبط.

challenge icon

التحدي

سهل

اقرأ أربع قيم من المدخلات: عدد صحيح temperature، وسلسلة نصية isRaining (إما "true" أو "false")، وسلسلة نصية hasUmbrella (إما "true" أو "false")، وسلسلة نصية hasRaincoat (إما "true" أو "false").

قم بتحويل القيم النصية إلى قيم منطقية (booleans) عن طريق مقارنتها بـ "true".

قم بتقييم الشروط الثلاثة التالية واطبع نتيجة كل منها باستخدام var_dump()، كل واحدة في سطر جديد:

  1. تحقق مما إذا كانت السماء لا تمطر (استخدم معامل !)
  2. تحقق مما إذا كان يجب على الشخص البقاء في الداخل: السماء تمطر و ليس لديه مظلة ولا معطف واقٍ من المطر (استخدم ! مع كلا العنصرين)
  3. تحقق مما إذا كان بإمكان الشخص الخروج براحة: درجة الحرارة لا تقل عن 15 و (السماء لا تمطر أو لديه مظلة أو معطف واقٍ من المطر)

مثال:

إذا كانت المدخلات هي 20، و true، و false، و true، فيجب أن تكون المخرجات:

bool(false)
bool(false)
bool(true)

التفسير:

  • !isRaining ← !true ← false
  • isRaining && !hasUmbrella && !hasRaincoat ← true && true && false ← false
  • temperature >= 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. التحقق مما إذا كان بإمكان الشخص الخروج بشكل مريح

?>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals