אופרטור מודולו
חלק מהיחידה יסודות במסלול ה-PHP של Coddy. שיעור 16 מתוך 71.
אופרטור המודולו (%) מחזיר את השארית לאחר חילוק. כשמחלקים מספר אחד במספר אחר, המודולו מחזיר את מה שנותר.
<?php
echo 10 % 3; // פלט: 1
?>כאן, 10 חלקי 3 שווה ל־3 עם שארית של 1. אופרטור המודולו מחזיר את השארית הזאת.
שימוש נפוץ באופרטור מודולו הוא לבדוק אם מספר הוא זוגי או אי־זוגי. בחלוקה ב־2, השארית היא 0 עבור מספר זוגי ו־1 עבור מספר אי־זוגי (-1 אם המספר האי־זוגי שלילי), לכן אם בחלוקת מספר ב־2 אין שארית, הוא זוגי; אחרת, הוא אי־זוגי:
<?php
$number = 8;
echo $number % 2; // פלט: 0 (זוגי)
$number = 7;
echo $number % 2; // פלט: 1 (אי־זוגי)
?>זה עובד רק לבדיקות זוגיות/אי־זוגיות, כי חלוקה ב־2 תמיד נותנת שארית של 0 או 1 (או -1 למספר אי־זוגי שלילי). עם מחלקים אחרים, כאשר שני המספרים חיוביים, השארית יכולה להיות כל ערך מ־0 ועד אחד פחות מהמחלק. התוצאה מקבלת את הסימן של המספר שמחלקים, לכן -17 % 5 הוא -2.
דוגמאות נוספות שיעזרו לך להבין את הדפוס:
<?php
echo 15 % 4; // פלט: 3 (15 = 4*3 + 3)
echo 20 % 5; // פלט: 0 (20 = 5*4 + 0)
$dividend = 17;
$divisor = 5;
echo $dividend % $divisor; // פלט: 2 (17 = 5*3 + 2)
?>אתגר
קלקראו שני מספרים מהקלט: מחולק ומחלק.
חשבו והדפיסו את השארית כאשר המספר הראשון מחולק במספר השני.
דוגמה:
אם הקלטים הם 17 ו-5, הפלט צריך להיות 2 (כי 17 ÷ 5 = 3 עם שארית של 2).
נסו בעצמכם
<?php
// קראו את הקלט
$dividend = intval(fgets(STDIN));
$divisor = intval(fgets(STDIN));
// TODO: כתבו את הקוד שלכם למטה כדי לחשב את השארית
// הציגו את התוצאה
echo $remainder;
?>השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורי השוואה ולוגיקה
אופרטורי השוואהשוויון וזהותאופרטורים לוגיים — חלק 1אופרטורים לוגיים — חלק 2סיכום — לוגיקה פשוטה2משתנים וסוגי נתונים
מספריםמחרוזות ומירכאותערכים בוליאנייםכללי מתן שמותסיכום – אתחול משתניםמשתנים ריקיםשרשור מחרוזותקבלת קלט מהמשתמשהמרה לסוגים שונים3אופרטורים בסיסיים
אופרטורים אריתמטייםאופרטור מודולואופרטור חזקההשמה משולבתהגדלה והקטנהקדימות אופרטוריםסיכום — חישובים פשוטיםאופרטורים למחרוזותתרגלו בעצמכם: קומפיילר PHP אונליין