סוגי אופרטורים בשפת PHP

אופרטור הוא סימן פעולה כלשהו על אופרנד (הנתון או המשתנה שלנו).
האופרטור שלנו הוא תו או מילה שלמה כגון אופרטור ההשמה (=) שראינו כבר במאמרים הקודמים שתפקידנו להציב ערך כלשהו לתוך משתנה, לעומת זאת אופרטור מילה יכול להיות or או and המהווים כאופרטורים לוגיים לבדיקת נכונות קטע לוגי בין אופרנדים (אין מה להבהל, הכל יוסבר בהמשך).

אופרטורי השמה

ב PHP ניתן לבצע השמה באמצעות האופרטור כמו שהכרנו וראינו בכל שאר הדוגמאות עד עכשיו:

<?php
    $var = 12; // $var gets the value 12
?>

בנוסף ניתן לבצע השמה של ערך של משתנה כלשהו למשתנה אחר:

<?php
    $a = 12; // $a gets the value 12
    $b = $a; // $b gets the value 12
?>

ניתן לקצר את הקוד בצורה הבאה:

<?php
    $a = $b = 12; // $a and $b gets the value 12
?>

אופרטורים מתמטיים

כמו שזה נשמע, וכמו שכל אחד מאיתנו מכיר – אופרטורים פשוטים כגון חיבור (+), חיסור (-), כפל (*) וחילוק (/) ופעולת מודולו (%) שתפקידה להחזיר לנו את שארית החלוקה (מוגדרת על מספרים שלמים, עשר מודולו שלוש יחזיר אחד בגלל ששלוש נכנס שלוש פעמים בעשר ונשאר אחד שארית), דוגמא שתסדר קצת את הראש:

<?php
	$a = 10;
	$b = 3;

	echo $a + $b; // Prints 13
	echo $a - $b; // Prints 7
	echo $a * $b; // Prints 30
	echo $a / $b; // Prints 3.3333333333333
	echo $a % $b; // Prints 1
?>

קיצור ושילוב בין אופרטורי השמה ואופרטורים מתמטיים

ניתן לשלב בין שני סוגי האופרטורים שנלמדו מעלה בצורה הבאה:

<?php
    $a = 10;
    $a += 3; // Or $a = $a + 3
    echo $a; // Prints 13
?>

PHP מאפשרת לנו לקצר את הקוד ובמידה ונרצה להוסיף, להכפיל, לחסר, לחלק או כל פעולה מתמטית אחרת, ניתן לקצר את זה כמו בדוגמא למעלה. נראה עוד כמה קיצורים:

<?php
	$a = 10;
	
	$a += 5;
	echo $a; // Prints 15

	$a /= 3;
	echo $a; // Prints 5

	$a *= 5;
	echo $a; // Prints 15

	$a -= 5;
	echo $a; // Prints 10

	$a %= 3;
	echo $a; // Prints 1
?>

בנוסף קיים גם אופרטור השירשור (נקודה – .) כמו שראינו במאמר על מחרוזות בשפת PHP.

בנוסף ניתן גם לקדם משתנים באחד או לחסר ממשתנה אחד:

<?php
	$a = 10;
	$a--;
	echo $a; // Prints 9

	$a++;
	echo $a; // Prints 10
?>

ניתן לכתוב גם ככה:

<?php
	$a = 10;
	echo $a--; // Prints 10

	echo $a++; // Prints 9

	echo $a; // Prints 10
?>

עכשיו נסביר למה מה שמודפס לא נראה לנו הגיוני, לא נשכח שב PHP הכל מתנהל משמאל לימין, קודם מתרחשת פקודת echo שמדפיסה את הערך של a$ לאחר שהערך הודפס הפעולה — מתבצעת ומחסירה 1 מ a$, הודפס לנו עשר ולאחר ההדפסה הערך השתנה ל 9. אותו דבר בשורה השניה אנחנו מדפיסים את הערך החדש של a$ שהוא 9 ואז מוסיפים 1 ל a$ ובשורה האחרונה שאנחנו מדפיסים את a$ אנחנו מקבלים את הערך החדש שלו, שהוא עשר.

מה היינו עושים אם היינו רוצים בכל זאת להדפיס את הערך החדש ? זאת אומרת, להוסיף 1 ל a$ ואז להדפיס ?, היינו עושים ככה:

<?php
	$a = 10;
	echo --$a; // Prints 9

	echo ++$a; // Prints 10

	echo ++$a; // Prints 11
	
	echo $a; // Prints 11
?>

אופרטורים לוגיים

האופרטור == מאפשר לנו להשוות בין ערכי שני משתנים, אם הערכים שווים יוחזר אמת (true), אם הם לא שווים יוחזר שקר (false):

<?php
    $a = 5;
    $b = $c = 10;
    $d = ($a == $b); // The value of ִִ$d is FALSE
    $d = ($b == $c); // The value of ִִ$d is TRUE
?>

PHP4 הוסיפה לנו אופרטור השוואה חדש והוא ===. האופרטור  הזה מחזיר true אם המשתנים בעלי אותו ערך ואותו הסוג, אחרת הוא מחזיר false.

האופרטור =! יחזיר לנו אמת (true) אם ערכי המשתנים לא זהים (סימן הקריאה מהווה שלילה) ומחזיר שקר (false) אם ערכי המשתנים שווים:

<?php
    $a = 5;
    $b = $c = 10;
    $d = ($a != $b); // The value of $d is TRUE
    $d = ($b != $c); // The value of $d is FALSE
?>

PHP4 הוסיפה לנו את האופרטור ==! שמחזיר אמת אם ערכי המשתנים והסוג שלהם שונים, אחרת אם ערכי המשתנים זהים והם מאותו סוג הוא יחזיר שקר.

האופרטור < מחזיר אמת (true) אם הערך של המשתנה השמאלי לאופרטור גדול מהערך של המשתנה הימני לו, אחרת הוא מחזיר שקר (false):

<?php
    $a = 10;
    $b = 20;
    $c = 30;
    $d = ($a > $b); // The value of $d is false
    $d = ($c > $b); // The value of $d is true
?>

 

האופרטור =< יחזיר לנו אמת (true) אם הערך של המשתנה השמאלי לו גדול או שווה לערך של המשתנה הימני לו, אחרת הוא מחזיר שקר (false).
האופרטור > מחזיר אמת (true) אם הערך של המשתנה השמאלי לו קטן מהערך של המשתנה הימני לו, אחרת הוא מחזיר שקר (false):

<?php
    $a = 10;
    $b = 20;
    $c = 30;
    $d = ($a < $b); // The value of $d is true
    $d = ($c < $b); // The value of $d is false
?>

 

האופרטור => יחזיר לנו אמת (true) אם הערך של המשתנה השמאלי לו קטן או שווה לערך של המשתנה הימני לו, אחרת הוא יחזיר לנו שקר (false).
האופרטור and מחזיר אמת (true) רק אם ערכי שני הפרמטרים מתקיימים, כלומר true, אחרת הוא מחזיר false:

<?php
    $c = $a and $b; // $c is true only if $a is true and $b is true
?>

במקום לכתוב and ניתן לכתוב &&, לדוגמה – a && $b$

האופרטור or מחזיר אמת (true) אם הערך של לפחות אחד משני הפרמטרים הוא אמת (true) כלומר לפחות אחד מהם מתקיים, אחרת הוא מחזיר false:

<?php
    $c = $a or $b; // $c is true if $a is true or $b is true (or both $a and $b are true)
?>

במקום לכתוב or ניתן לכתוב ||, לדוגמה – a || $b$

האופרטור ! מחזיר אמת (true) אם ערך הפרמטר הוא false, ומחזיר false אם ערך הפרמטר הוא true, בעיקרון תפקיד האופרטור הוא לשלילה:

<?php
    $b = !$a; // $b is true if $a is false or $b is false if $a is true
?>

האופרטור xor מחזיר אמת (true) אם הערך של אחד משני הפרמטרים הוא true (אך לא שניהם, בניגוד ל or), אחרת הוא מחזיר שקר (false):

<?php
    $c = $a xor $b; // $c is true if $a is true or $b is true (but not both)
?>

כעת שאנחנו שולטים בסוגי האופרטורים, נוכל להמשיך הלאה וללמוד משפטי תנאי (if) בשפת PHP.