אופרטורים לוגיים — חלק 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)
?>ללא סוגריים, && נבדק לפני ||. עם זאת, שימוש בסוגריים מקל על קריאת הקוד ומונע טעויות. כשמשלבים אופרטורים, תמיד קבץ תנאים באופן לוגי כדי להביע בדיוק את כוונתך.
אתגר
קלקראו ארבעה ערכים מהקלט: מספר שלם temperature, מחרוזת isRaining (או "true" או "false"), מחרוזת hasUmbrella (או "true" או "false"), ומחרוזת hasRaincoat (או "true" או "false").
המירו את ערכי המחרוזות לערכים בוליאניים על ידי השוואתם ל-"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
נסו בעצמכם
<?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. בדקו אם האדם יכול לצאת החוצה בנוחות
?>השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורי השוואה ולוגיקה
אופרטורי השוואהשוויון וזהותאופרטורים לוגיים — חלק 1אופרטורים לוגיים — חלק 2סיכום — לוגיקה פשוטה2משתנים וסוגי נתונים
מספריםמחרוזות ומירכאותערכים בוליאנייםכללי מתן שמותסיכום – אתחול משתניםמשתנים ריקיםשרשור מחרוזותקבלת קלט מהמשתמשהמרה לסוגים שונים3אופרטורים בסיסיים
אופרטורים אריתמטייםאופרטור מודולואופרטור חזקההשמה משולבתהגדלה והקטנהקדימות אופרטוריםסיכום — חישובים פשוטיםאופרטורים למחרוזותתרגלו בעצמכם: קומפיילר PHP אונליין