Menu
Coddy logo textTech

אופרטורים לוגיים — חלק 2

חלק מהיחידה יסודות במסלול ה-PHP של Coddy. שיעור 26 מתוך 71.

האופרטור NOT (!) הופך ערך בוליאני להופכי שלו. אם משהו הוא 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").

המירו את ערכי המחרוזות לערכים בוליאניים על ידי השוואתם ל-"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

נסו בעצמכם

<?php
// קראו את ערכי הקלט
$temperature = intval(fgets(STDIN));
$isRainingStr = trim(fgets(STDIN));
$hasUmbrellaStr = trim(fgets(STDIN));
$hasRaincoatStr = trim(fgets(STDIN));

// TODO: המירו ערכי מחרוזת לערכים בוליאניים על ידי השוואתם ל-"true"


// TODO: בדקו והדפיסו את שלושת התנאים באמצעות var_dump():
// 1. בדקו אם לא יורד גשם
// 2. בדקו אם האדם צריך להישאר בפנים (יורד גשם ואין מטרייה ואין מעיל גשם)
// 3. בדקו אם האדם יכול לצאת החוצה בנוחות

?>
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר PHP אונליין