אתה נמצא כאן יסודות השפה  >>  ביטויים  >>  כללי

כללי

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

ניקח למשל את הביטוי: "$a=5". יש כאן שלושה ערכים: הערך 5, הערך של $a וערך ההשמה בעצמו, ושלושת הערכים הללו מקבלים את הערך 5. כך למשל הביטוי "$a=($b=2)" שקול לביטוי "$b=2; $a=2;", וכן לביטוי "$a=$b=2;". יש גם ביטויים מסובכים יותר כגון פונקציות. למשל ניקח את הפונקציה: "function func() { return 3; }". ערכו של הביטוי func() הוא 3, כי הערך המוחזר של הפונקציה הוא 3.

קידום והפחתת משתנים גם מחזירים ערכים, אך יש הבדל בין פרה-קידום (pre-increment) לבין פוסט-קידום (post-increment). פרה-קידום, שנכתב בצורה ++$a, מחזיר את הערך המקודם (PHP מקדמת את הערך לפני שהיא מחזירה אותו). ואילו פוסט-קידום, שנכתב בצורה $a++, מחזיר את הערך המקורי (PHP מקדמת את הערך רק אחרי שהיא מחזירה את ערכו המקורי). כנ"ל לגבי ההפחתה: --$a, $a--. לפעמים צריך לקדם או להפחית לא ב-1 אלא במספר אחר, ואז נכתוב "$a+=5", שמשמעותו לקדם את הערך שב-$a ב-5 ולשים את הערך המקודם בחזרה ב-$a (שקול ל: "$a=$a+5;"). ובצורה דומה נכתוב לגבי כל פעולות החשבון.

שימוש נרחב בביטויים נעשה בבדיקת האמיתות של ביטוי מסויים בעזרת מספר אופרטורי השוואה שמחזירים ערכי אמת/שקר: ==, !=, <, >, <=, >=. שימושם בא ניכר בעיקר במבני בקרה (לולאות וביטויי if). כדי לבנות ביטויים מורכבים יותר משתמשים בשערי ’גם’ (שסימנו &&) ובשערי ’או’ (שסימנו ||).

נביא דוגמא קצרה להמחשת העניין:

<?php
  $a=$b=3;
/*$b מקבל את הערך 3.
ההשמה בעצמה מחזירה לנו את הערך 3,
ולכן גם $a מקבל את הערך 3.
*/

  echo "\$a=$a \$b=$b <BR>\n";
  $c=$b++;
/*פוסט-קידום (post-increment).
קודם מוחזר הערך של $b, ואח"כ הוא מקודם ב-1.
לכן לאחר הפקודה הזו: $b=4 ; $c=3.
*/

  echo "\$c=$c \$b=$b <BR>\n";
  $d=$e=++$b;
/*פרה-קידום (pre-increment).
קודם $b מקודם, ואח"כ מוחזר ערכו.
לכן לאחר הפקודה הזו: $b=5 ; $d=5 ; $e=5.
*/

  echo "\$d=$d \$e=$e \$b=$b <BR>\n";
?>


תגובות בנושא

אני דווקא ציפיתי ליותר 02-11-01 02:01
 SadWax
#15

מה בקשר לביטוים של
^[A-Z](.[0-9])$*
?
אלו ביטויים שממש חסר אליהם מידע וחשבתי שיהיה כתוב כאן.

לא הבנתי משהו... 06-12-02 08:01
 חגי
#233

$d=$e=++$b
למה b בכלל משתנה? לא מכניסים את הערך שמוגדל של b לe ואז b לא לא משתנה?

קידום והפחתה משנים ערכים 06-12-02 08:02
 אלי חן (מנהל)
#236

קידום והפחתה (++ --) משנים אוטומטית את הערך של המשתנה עליו הם פועלים (בלי צורך בסימן השמה), לכן b משתנה ואילו e ו-d מקבלים את הערך של b המקודם (פרה-קידום).

ישנו הבדל בין פרה-קידום לפוסט-קידום: פרה-קידום קודם מקדם את הערך ואח"כ מחזיר את הערך המקודם, ואילו פוסט-קידום קודם מחזיר את הערך המקורי ואח"כ רק מקדם את הערך. (כנ"ל לגבי הפחתה).

משתנים 06-12-02 09:01
 עיחליחלאיח
#240

מה זה משתנים בכלל?
במה הם עוזרים לי?
ולמה צריך אותם?

משתנים 06-12-02 09:02
 אלי חן (מנהל)
#246

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

תוסיף עוד פרקים מורחבים 08-12-02 10:01
 אסף
#373

תוסיף פרק מורחב על פרה קידום ופרק על פוסט קידום...
ורגע, אמרת ש"גם" זה && אז מה זה & בודד?

פרה-קידום, פוסט-קידום 08-12-02 10:01
 אלי חן (מנהל)
#375

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

ה-'גם' הזה && הוא של ביטויים לוגיים (אמת ושקר).
ה-'גם' הזה & הוא של ביטים, הוא פועל ברמת הביטים.


לדף הקודםביטויים -הקודם
לתחילת הדףלתחילת הדף
הבא- בחן את עצמךלדף הבא